Expresiones Regulares

Qué son las expresiones regulares

Secuencia de caracteres que forman un patrón de búsqueda. Son patrones utilizados para encontrar una determinada combinación de caracteres dentro de una cadena de texto o todo un archivo. Proporcionan una manera muy flexible de buscar o reconocer cadenas de texto.

Aplicaciones de las expresiones regulares

Buscar patrones dentro de un texto para sustraer información importante.

El caracter (.)

Encuenta cualquier caracter en una cadena de texto o en un archivo Ejemplos:
.\$ encuentra cualquier caracter que al frente tenga el signo $
.a encuentra cualquier caracter que al frente tenga la letra a
..# encuentra dos caracteres seguidos cualquiera que al frente tenga el símbolo #

Las clases predefinidas y construidas

\d Encuentra todos los dígitos numéricos uno a uno. Por ejemplo en el texto 123 encontrará tres coincidencias.
Si quisieramos encontrar dígitos en grupos de a 3 lo haríamos así: \d\d\d
\w Encuentra todos los caracteres (Letras mayúsculas y minúsculas, dígitos y el guión bajo), caracteres que pueden ser parte de una palabra.
\s Encuentra todos los espacios. Inclusive tabulaciones.
[0-9] Equivalente a \d encuentra cualquier caracter que sea un dígito. Con la excepción que puedo encontrar cierto rango de dígitos. Ej: [5-9] encontrará únicamente dígitos del 5 al 9.
[a-z] Similar a \w encuentra caracteres, pero en este caso solo letras minúsculas desde la a hasta la z. Podríamos utilizar también [p-s] para encontrar letras dentro de ese rango. Otro ejemplo: [A-D] letras mayúsculas entren la A y la D. Simular precisamente el \w: [a-zA-Z0-9_].
Gracias a los corchetes podemos construir nuestras propias clases.
Ejemplo: [\.] encontrará el caracter ., es muy importante resaltar que no es la clase punto que encuentra cualquier caracter, sino exactamente el caracter .
Se podría también enumerar el rango, ej: [ABCDEF] letras mayúsculas desde la A hasta la F

Los delimitadores: +, *, ?

El * encuentra cero o todos los caracteres. Ejemplo: al buscar .* a diferencia de buscar solo con el ., encontrará un match por cada línea. Si buscamos \d* encontrará conjunto de números, es decir si en una línea está el número 456 lo contará como un solo match y no como tres.
El + encuentra uno o mas caracteres
El ? encuentra cero o un caracter. Funciona diferente ya que por ejemplo en el número 123 encontrará 3 matchs en lugar de uno.
En resumen:
* Todo
+ Uno o más
? Cero o uno