Expresiones regulares
Cuáles son las funciones y cómo se escriben las expresiones regulares.
26 de febrero de 2025
Las expresiones regulares (regex o regexp) son secuencias de caracteres que definen un patrón de búsqueda en textos. Se utilizan para encontrar, extraer, validar o reemplazar cadenas de caracteres en distintas aplicaciones, como procesamiento de texto, validación de entradas y búsqueda avanzada en bases de datos.
Los casos de uso de las expresiones varían de muchas maneras, algunos ejemplos de ello podrían ser:
- Validación de datos
- Búsqueda y Extracción de Información
- Reemplazo de Texto (Find & Replace)
- Procesamiento de Logs o Archivos
- Análisis de Texto en Ciencia de Datos y NLP
Las expresiones regulares (regex) usan caracteres especiales para definir patrones de búsqueda. Estos caracteres permiten coincidir, agrupar y modificar cómo se encuentran las cadenas de texto. A continuación se muestran algunos de ellos y su funcionamiento.
Carácter | Significado |
---|---|
\w | Cualquier carácter alfanumérico (a-z, A-Z, 0-9, _) |
\W | Cualquier carácter no alfanumérico |
\d | Cualquier dígito (0-9) |
\D | Cualquier carácter que no sea un dígito |
\s | Espacio en blanco (espacio, tabulación, nueva línea) |
\S | Cualquier carácter que no sea un espacio en blanco |
\b | Límite de palabra (inicio o fin) |
\B | No límite de palabra |
^ | Inicio de línea |
$ | Fin de línea |
() | Agrupación |
(a(bc)) | Subgrupo |
{n} | Exactamente n repeticiones |
{n, } | n o más repeticiones |
{n, m} | Entre n y m repeticiones |
[abc] | Conjunto (coincide con a, b, c en este caso) |
[^abc] | No coincide con a, b, c |
[a-z] | Cualquier letra minúscula |
[A-Z] | Cualquier letra mayúscula |
[0-9] | Cualquier número |
? | 0 o 1 repetición (opcional) |
* | 0 o más repeticiones |
+ | 1 o más repeticiones |
. | Cualquier carácter excepto nueva línea |
\ | Carácter literal a la derecha |
Como ejemplo podemos ver el siguiente para la validación de un correo electrónico en Python.
PYTHON
import reemail = "usuario@example.com"patron = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"if re.match(patron, email):print("Correo válido")else:print("Correo inválido")
O el siguiente caso para buscar un número de teléfono en JavaScript.
JAVASCRIPT
const texto = "Llama al 123-456-7890 para más información.";const regex = /\d{3}-\d{3}-\d{4}/;console.log(texto.match(regex)); // ["123-456-7890"]
Algunas herramientas para aprender, crear o validar expresiones regulares son las siguientes: