2012-05-28 16 views
37

Necesito hacer coincidir todas las líneas que contienen un valor y que no tienen un prefijo dado.Regex para hacer coincidir cadenas específicas sin un prefijo dado

Ejemplo: quiero todas las líneas que contienen word cuando no está prefijado por prefix

Así:

foobar -> no match 
prefix word -> no match 
prefix word suffix -> no match 
word -> MATCH 
something word -> MATCH 

Lo que he probado hasta ahora:

(?!prefix)word 

Doesn' t parece hacer lo que quiero

Respuesta

48

Puede necesitar

(?<!prefix)word 

(y tal vez ocuparse de los espacios).

(?!) es un aspecto negativo, pero en su caso necesita un aspecto negativo detrás (es decir, (?<!)).

+0

Esto coincidirá incorrectamente con la línea "prefijo otra palabra". La pregunta especificaba que la línea comenzaba con el prefijo y contenía "palabra" pero no decía "palabra", siempre seguido inmediatamente por "prefijo". –

Cuestiones relacionadas