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.
Tu calificación: