Usar el límite de la palabra en Regex que excede la longitud de la palabra para la búsqueda anticipada negativa

Lo siento si ese título no explica completamente mi problema. Ayer alguien amablemente señaló cómo llegar desde aquí:

(?<STREET>(?!The|Long)\w+ Drive)

que me estaba dando resultados como

  • CALLE: él conduce

usando límites de palabras:

?(?!El|Largo)\b\w+ Drive)

que funcionó a la perfección (STREET no arrojó ninguna coincidencia para 'The Street'). Sin embargo, ahora me enfrento al problema de que, aunque estoy buscando prefijos de 1 palabra para 'Drive' y tengo exclusiones de 1 palabra, no puedo encontrar la manera de alargar las exclusiones. Por ejemplo

  • Unidad de milla

está bien pero

  • una milla en coche
  • unidad de milla rápida

no es. Esto es realmente solo un ejemplo, no tratando de resolver esta instancia específica; cómo excluir un término frente a una palabra de una parte del patrón de una sola palabra.

preguntado el 24 de mayo de 14 a las 16:05

1 Respuestas

Si desea hacer coincidir una o más palabras, simplemente use la agrupación y más:

(?<STREET>(?!The|Long)(\b\w+ )+Drive)

como más + coincide con uno o más. Alternativamente, si tiene un cierto número de palabras que desea hacer coincidir, intente usar {} por ejemplo, para hacer coincidir entre 1 y 4 palabras, use:

(?<STREET>(?!The|Long)(\b\w+ ){1,4}Drive)

contestado el 24 de mayo de 14 a las 18:05

Hola, de hecho, estoy buscando hacer coincidir SingleWord Drive y excluir ciertas SingleWords (por ejemplo, Long). Sin embargo, en algunos casos, quiero Long Drive, pero no cuando se trata de "un viaje largo". Así que estoy tratando de capturar una frase de dos palabras, excluyendo ciertas primeras palabras por completo y otras primeras palabras solo si están precedidas por otras palabras. - user3649739

Ok, tu pregunta todavía parece algo confusa. Si pudieras dar un ejemplo más concreto de lo que quieres hacer, podría ayudarte. :) - Mike HR

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.