[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Una de expresiones regulares



Hola.


A ver si entiendo


El 21-11-2016 a las 12:56 p.m., José Miguel (sio2) escribió:
Un saludo:

A ver si alguno sabe cuál es la causa de que falle lo siguiente:

Se pretende crear una regex de tipo ERE que concuerde con ilas líneas que
contengan cuatro palabras constitutidas por letras. Mi solución es esta:

^\W*(?[[:alpha:]]+\b\W*){4}$

Pero resulta que no me funciona bien:

si tengo por ejemplo.

uno dos
4cuatro letras es lo que necesito
abcd 1234 caja tapa
c4ja tapa esta noes
caja tapa esta vale

Solo debería mostrar la última línea ¿Entendí bien?


$ grep -E '^\W*(?[[:alpha:]]+\b\W*){4}$'<<<"affffff b cx"
affffff b cx

Sin embargo, la expresión PCRE correspondiente sí funciona bien:

$ grep -P '^\W*(?:[[:alpha:]]+\b\W*){4}$'<<<"affffff b cx"

y no devuelve salida. Por más que miro y remiro la expresión regular, me
parece que está bien. ¿A alguien se le ocurre algo, o es error que debo
achacar a grep?


Saludos.

--
Juan M Lavieri

Errar es de humanos, pero es mas humano culpar a los demás.


Reply to: