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:

  1. Validación de datos
  2. Búsqueda y Extracción de Información
  3. Reemplazo de Texto (Find & Replace)
  4. Procesamiento de Logs o Archivos
  5. 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ácterSignificado
\wCualquier carácter alfanumérico (a-z, A-Z, 0-9, _)
\WCualquier carácter no alfanumérico
\dCualquier dígito (0-9)
\DCualquier carácter que no sea un dígito
\sEspacio en blanco (espacio, tabulación, nueva línea)
\SCualquier carácter que no sea un espacio en blanco
\bLímite de palabra (inicio o fin)
\BNo 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 re
email = "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: