Para trabajar empezar a trabajar con consultas Regex, lo primero es empezar por las dos patrones más sencillos: literales y caracteres especiales.
Vamos a verlos 👇
Qué son los literales en Regex
Los literales son simplemente patrones exactos que buscamos en una cadena de texto (es decir, mismos caracteres, en el mismo orden).
Cuando escribimos un literal en una expresión regular, estamos indicando que queremos encontrar ese exactamente ese texto, en el texto que estamos evaluando.
Por ejemplo, si queremos encontrar la palabra "hola"
en una cadena de texto, podemos escribir:
hola
Esto coincidirá con cualquier aparición exacta de la palabra "hola"
en el texto. Vamos a verlo en funcionamiento,
¡Hola, mundo!
hola123 y hola mundo
En el ejemplo, podemos observar que:
- En el primer caso, la palabra
"hola"
coincide de manera exacta con la cadena. - En el segundo ejemplo, no hay coincidencia, ya que el literal
"hola"
no tiene en cuenta la mayúscula"H"
. - En el tercer caso, coincide dos veces: la primera dentro de
"hola123"
y la segunda en"holamundo"
.
Si quisiéramos ignorar las mayúsculas y minúsculas, usaríamos un modificador (lo veremos en su propio artículo).
Los literales son las búsquedas más sencillas. Cuando empiezan a tener gracia es cuando se mezclan con caracteres especiales y cuantificadores.
Qué son los caracteres especiales en Regex
Los caracteres especiales son aquellos que puede cumplir más de un caracter (por ejemplo todas las letras, o todos los dígitos).
Estos caracteres permiten crear patrones más complejos que simplemente buscar literales.
A continuación, se presentan algunos de los caracteres especiales más utilizados en Regex:
Aquí tienes la lista convertida en una tabla:
Símbolo | Coincide con |
---|---|
. | Cualquier carácter |
\w | Cualquier carácter alfanumérico |
\W | Cualquier carácter que no sea alfanumérico |
\d | Cualquier dígito |
\D | Cualquier carácter que no sea un dígito |
Alfanumérico significa letra o número, es decir, a-z, A-Z, o 0-9]
Vamos a verlo con un ejemplo
Fecha: 2023-09-15
Hay 25 personas aquí
- El uso de
\w
encuentra todos los caracteres alfanuméricos, mientras que\W
busca caracteres no alfanuméricos. - Por otro lado,
\d
busca números, y\D
busca cualquier cosa que no sea un número.
En ejemplo anterior, prueba a poner \w, \W, \d o \D
Escapando caracteres especiales
Si queremos usar un carácter especial como un literal, necesitamos escaparlo usando la barra invertida (\
).
Escapar significa tratar un carácter especial como si fuera un literal normal, eliminando su significado especial.
Por ejemplo, si quisiéramos buscar un punto (.
) literal en una cadena de texto, no podemos poner .
porque en RegEX un punto significa “cualquier caracter”.
Por lo que debemos escaparlo, así:
\.
Vamos a verlo en un ejemplo
No hay punto aquí
Versión 1.0.3
En este ejemplo,
- En la primera línea, coincide únicamente con el carácter
"."
que aparece en"archivo.txt"
- En la segunda línea, como no hay ningún punto en el texto, no hay coincidencias
- En la tercera línea, el patrón coincide con todos los puntos en
"1.0.3"
, ya que están presentes en el texto