Tengo que resolver un problema de expresiones regulares que podría ser específico, mirando a través del desbordamiento de pilas. He hecho algunos buenos descubrimientos, pero no he podido unirlos para hacerlo funcionar.Reparando nombres de calles con expresiones regulares
Básicamente quiero esto:
lorem ipsum north road
=>lorem ipsum rd (n)
north lorem ipsum rd
=>lorem ipsum rd (n)
lorem ipsum road north
=>lorem ipsum rd (n)
Como parte de un programa completo de auto que necesito para convertir texto parcial a la versión correcta para que pueda verificar la base de datos
lorem ipsum so
UTH rd =>lorem ipsum rd (s)
west lorem ipsum roa
d =>lorem ipsum rd (w)
no quiero a alguien para codificar este programa para mí, pero me gustaría saber la mejor forma de abordar el problema.
Ahora usted me puede preguntar por qué me molesto, ya que la gente no escribir con tal gramática f'd arriba, pero eso es porque yo no sólo estoy tratando con Inglés :(
Saludos
Este es un gran desafío. Anteriormente había creado un RegExp que encontraba tipos de calles (es decir, "Street", "Lane", "Avenue", "Ave", etc.) pero incluso eso era un RegExp de más de 200 caracteres. Para resolver esto sería más complejo que eso. Los casos extremos como "North Rd", "West Ave", etc. lo harían aún más desafiante. –
Creo que este es el tipo de pregunta que no debería resolverse con una sola gran expresión regular. Sería más sencillo dividir la tarea en pequeños pasos y hacerlos por separado: p. compruebe hacia el norte, n ... etc. y agregue un "(n)" al final; verificar las otras direcciones; verifique las abreviaturas de "camino" ... etc. Si haces cada uno en un paso diferente, probablemente será más fácil de seguir y más fácil de escribir. –
Ooh, otro pensamiento: si lo hace paso a paso, tendrá la opción de deshacer su modificación e intentar la búsqueda de nuevo: es posible que alguna calle tenga algo en el nombre real que reemplazó. –