Expresiones Regulares para Validaciones

Herramientas para buscar, validar y transformar texto usando patrones.

¿Qué es una Expresión Regular?

  • Un patrón que describe un conjunto de cadenas de texto.
  • Se usan para validar, buscar y reemplazar texto.
  • En Python: import re | En JavaScript: /patrón/flags
  • Ejemplo: 3\d{9} valida celulares colombianos.

Metacaracteres básicos

Símbolo Significado
. Cualquier carácter (excl. salto de línea)
^ Inicio de la cadena
$ Fin de la cadena
\ Carácter de escape
| Alternancia (OR)
() Grupo de captura

Cuantificadores

Símbolo Significado
* 0 o más repeticiones
+ 1 o más repeticiones
? 0 o 1 (opcional)
{n} Exactamente n veces
{n,} Al menos n veces
{n,m} Entre n y m veces

Clases de Caracteres

Clase Equivale a
\d Dígito [0-9]
\D No dígito
\w Alfanumérico + _
\W No alfanumérico
\s Espacio en blanco
[abc] a, b o c
[^abc] Cualquiera excepto a,b,c

Regex en Python

import re

# Validar email
patron = r'^[\w\.-]+@[\w\.-]+\.\w{2,}$'
re.match(patron, 'profe@gmail.com')

# Celular colombiano (10 dígitos, inicia 3)
re.match(r'^3\d{9}$', '3001234567')

# Contraseña fuerte (mayúscula + número, 8+)
re.match(r'^(?=.*[A-Z])(?=.*\d).{8,}$', 'Segura123')

# Encontrar todos los números
re.findall(r'\d+', '3 gatos y 12 perros')
# Resultado: ['3', '12']

Regex en JavaScript

// Validar email
const emailRx = /^[\w\.-]+@[\w\.-]+\.\w{2,}$/;
emailRx.test('profe@gmail.com'); // true

// Reemplazar texto
"hola mundo".replace(/mundo/g, 'Colombia');

// Extraer grupos de una fecha
const m = "2024-05-15".match(/(\d{4})-(\d{2})-(\d{2})/);
// m[1]="2024"  m[2]="05"  m[3]="15"

// Buscar todas las palabras largas
"hola mundo tecnología".match(/\b\w{7,}\b/g);
// ["tecnología"]

🧪 Tester Interactivo de Regex

Coincidencias: 0

Texto con coincidencias resaltadas en amarillo:

Ejemplos rápidos:

📖 Diccionario

Expresión Regular (Regex)
Patrón que describe un conjunto de cadenas de texto para buscar o validar.
Metacarácter
Símbolo con significado especial: . * + ? ^ $ \ | ( ) [ ] { }
Cuantificador
Indica cuántas veces se repite el elemento anterior (*, +, ?, {n,m}).
Conjunto [...]
Define caracteres válidos. [a-z] acepta letras minúsculas; [^abc] las excluye.
Ancla
Fija posición: ^ inicio, $ fin, \b frontera de palabra.
Grupo de captura ()
Extrae parte del patrón. m[1], m[2]... acceden a cada grupo.
Flag / Bandera
g = global, i = sin distinción mayúsculas, m = multilínea.
Lookahead (?=)
Verifica que sigue algo sin incluirlo en la coincidencia.
Greedy vs Lazy
Por defecto los cuantificadores son greedy (máximo). Añadir ? los hace lazy (mínimo).
re.match() vs re.search()
match() busca al inicio; search() busca en cualquier posición de la cadena.
re.findall()
Devuelve lista con todas las coincidencias encontradas.
re.sub()
Reemplaza las coincidencias del patrón por otro texto especificado.

🎬 Videos en Español

Expresiones Regulares desde cero

Regex en Python — Módulo re

Regex en JavaScript

Validaciones de formularios con Regex

Cuestionario

10 preguntas aleatorias del banco de 50. Calificación de 0 a 100.