¿Alguien puede explicar esta expresión pieza por pieza, por favor? grep '\([aeiou]\).\1'

¿Alguien puede explicar esta expresión pieza por pieza, por favor? grep '\([aeiou]\).\1'

Encontré esta expresión para una tarea que "imprimirá todas las líneas que contengan una vocal (a, e, i, o o u) seguida de un solo carácter seguido de la misma vocal nuevamente. Por lo tanto, encontrará "eve" o “Adán” pero no “vera”. La expresión funciona correctamente pero estoy buscando a alguien que pueda explicar qué hace cada parte para poder entender mejor cómo funciona.

Respuesta1

En primer lugar, busque en Google sitios con expresiones regulares. Te ayudarán mucho. Por ejemplo, pruebe con regexona.

En segundo lugar, para probar o ayudar a comprender las expresiones regulares, consulte regex101.com; esto puede ayudarle mucho, ya que explica lo que sucede paso a paso; También puedes probar expresiones regulares.

Ahora en cuanto a la expresión:

[aeiou]

coincide con cualquiera de los caracteres entre paréntesis (aquí: a, e, i, o o u).

.

coincide con cualquier carácter

\1

coincide con el primer grupo de captura.

\(anything\)

es un grupo de captura.

El grupo de captura es el nombre de una cadena que puede recordar para su uso posterior. En este caso, capturar cualquier personaje de [aeiou] nos permite recordar con qué coincidimos. Si escribiéramos esta expresión regular en su lugar:

[aeiou].[aeiou]

no tendríamos forma de comprobar si la primera y la segunda vocal son iguales.

Entonces, su expresión regular significa "Hacer coincidir cualquier cosa que sea uno de los caracteres de" aeiou ", luego cualquier carácter individual y luego el que fue el primer carácter".

Respuesta2

Primero, el \(y \). Esto significa que "cualquier cosa dentro de estos padres fugitivos es un grupo y se puede hacer referencia como tal más adelante en la expresión". Dentro tienes [aeiou], que significa "cualquiera de los caracteres a, e, i, oo u". El punto único .significa "cualquier carácter". Significa \1"Lo que encontraste cuando coincidiste en el primer grupo".

información relacionada