Saltar al contenido

regex: uso del signo de estrella en grep

noviembre 1, 2021
apple touch icon@2

El asterisco es solo un operador de repetición, pero debes decirle lo que repites. /*abc*/ coincide con una cadena que contiene ab y cero o más c (porque el segundo * está en la c; el primero no tiene sentido porque no hay nada que repetir). Si quieres hacer coincidir algo, debes decir .* – el punto significa cualquier carácter (dentro de ciertas pautas). Si solo quieres hacer coincidir abc, puedes decir grep 'abc' myFile. Para su coincidencia más compleja, debe utilizar .*grep 'abc.*def' myFile coincidirá con una cadena que contiene abc seguido de def con algo opcionalmente en el medio.

Actualización basada en un comentario:

* en una expresión regular no es exactamente lo mismo que * en la consola. En la consola, * es parte de un construcción glob, y solo actúa como comodín (por ejemplo ls *.log enumerará todos los archivos que terminan en .log). Sin embargo, en las expresiones regulares, * es un modificador, lo que significa que solo se aplica al carácter o grupo que lo precede. Si desea que * en las expresiones regulares actúe como comodín, debe usar .* como se mencionó anteriormente, el punto es un carácter comodín y la estrella, al modificar el punto, significa buscar uno o más puntos; es decir. encontrar uno o más de cualquier personaje.

close