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.
Buscar patrones dentro de un texto para sustraer información importante.
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 #
\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
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