====== Expresiones regulares ======
Las expresiones regulares son patrones utilizados para encontrar una determinada combinación de caracteres dentro de una cadena de texto. Las expresiones regulares proporcionan una manera muy flexible de buscar o reconocer cadenas de texto.
===== Construcción =====
* Alternación
* Cuantificación
* Agrupación
==== Alternación ====
La barra vertical (''|'') separa las alternativas:
amarillo|azul
Se corresponde con ''amarillo'' o ''azul''
==== Cuantificación ====
Un cuantificador tras un carácter indica la frecuencia con la que este puede ocurrir. Los cuantificadores más comunes son:
* ''?'': indica que el carácter que le precede puede aparecer como mucho 1 vez. Por ejemplo: ''ob?scuro'' se corresponde con ''oscuro'' y ''obscuro''.
* ''+'': indica que el carácter que le precede debe aparecer al menos 1 vez. Por ejemplo: ''ho+la'' se correspondería con ''hola'', ''hoola'', ''hooola'', etc.
* ''*'': indica que el carácter que le precede puede aparecer 0, 1 o más veces. Por ejemplo: ''0*42'' se corresponde con ''42'', ''042'', ''0042'', ''00042'', etc
==== Agrupación ====
Define el ámbito y precedencia de los demás operadores.
===== Ejemplos =====
==== E-mail ====
Busca una dirección de e-mail ignorando mayúsculas y minúsculas.
/[\w-\.]+@([\w-]+\.)+[\w-]{2,4}/i
==== Enlaces ed2k ====
En un fichero con código HTML, extraer los enlaces que empiecen por ''ed2k'':
cat fichero.html | grep -Eo 'ed2k[^"]+' > ed2k-links.txt
==== Dirección IP ====
Patrón para validar una dirección IPv4:
^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$