Guía de herramienta

Cómo usar Expresiones Regulares

Aprende los caracteres especiales, flags y patrones más usados para buscar, validar y transformar texto.

¿Qué es una expresión regular?

Una expresión regular (regex) es un patrón que describe un conjunto de cadenas de texto. Se usan para buscar, validar y transformar texto de manera eficiente. Son soportadas en prácticamente todos los lenguajes de programación.

En JavaScript, las regex se escriben entre barras: /patrón/flags, o con el constructor new RegExp("patrón", "flags").

Caracteres especiales

CarácterSignificadoEjemploCoincide con
.Cualquier carácter excepto salto de líneaa.cabc, aXc, a1c
*0 o más repeticiones del elemento anteriorab*cac, abc, abbc
+1 o más repeticiones del elemento anteriorab+cabc, abbc (no ac)
?0 o 1 repetición (hace el elemento opcional)colou?rcolor, colour
^Inicio de la cadena (o de línea con flag m)^HolaHola mundo (inicio)
$Fin de la cadena (o de línea con flag m)mundo$Hola mundo (fin)
[]Conjunto de caracteres permitidos[aeiou]Cualquier vocal
()Grupo de captura(ab)+ab, abab, ababab
{}Cuantificador exacto\d{3}Exactamente 3 dígitos
|Alternativa (OR)gato|perrogato o perro
\dCualquier dígito (0-9)\d+123, 4, 9876
\wPalabra: letras, dígitos, guión bajo\w+hola, test123, mi_var
\sEspacios, tabs, saltos de línea\s+Espacios en blanco

Flags

Los flags modifican el comportamiento de la expresión regular. Se agregan después de la última barra: /patrón/gi

gglobal

Encuentra todas las coincidencias (no solo la primera)

iinsensitive

Ignora diferencias entre mayúsculas y minúsculas

mmultiline

^ y $ aplican a cada línea, no solo al string completo

sdotAll

El punto (.) también coincide con saltos de línea

5 ejemplos prácticos

1. Validar email

Patrón:/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

console.log(emailRegex.test("usuario@ejemplo.com"</span>)); "color:rgba(255,255,255,0.35)"pan>>// truepan>
console.log(emailRegex.test("no-es-email"</span>));          "color:rgba(255,255,255,0.35)"pan>>// falsepan>
console.log(emailRegex.test("a@b.co"</span>));               "color:rgba(255,255,255,0.35)"pan>>// truepan>

2. Extraer números de un texto

Patrón:/\d+/g
const texto = "Tengo 3 gatos y 12 perros en 1 casa"</span>;
const numeros = texto.match(/\d+/g);
console.log(numeros); "color:rgba(255,255,255,0.35)"pan>>// ["3"pan>, "12"</span>, "1"pan>]</span>

"color:rgba(255,255,255,0.35)"pan>>// Convertir a números:pan>
const nums = numeros.map(Number); "color:rgba(255,255,255,0.35)"</span>>// [3, 12, 1]pan>

3. Validar contraseña segura

Patrón:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%]).{8,}$/
"color:rgba(255,255,255,0.35)"</span>>// Al menos: 1 minúscula, 1 mayúscula, 1 número, 1 símbolo, mín 8 charspan>
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%]).{8,}$/;

console.log(passwordRegex.test("Segura1!"</span>));   "color:rgba(255,255,255,0.35)"pan>>// truepan>
console.log(passwordRegex.test("debil123"</span>));   "color:rgba(255,255,255,0.35)"pan>>// false (sin mayúsc/símbolo)

4. Buscar URLs en texto

Patrón:/https?:\/\/[^\s]+/g
const texto = "Visita https:/span>color:rgba(255,255,255,0.35)">//meshicode.com y también http://ejemplo.org"pan>;</span>
const urls = texto.match(/https?:\/\/[^\s]+/g);
console.log(urls);
"color:rgba(255,255,255,0.35)"</span>>// ["https://meshicode.com"pan>, "http://ejemplo.org"pan>]

5. Reemplazar texto

Patrón:/\bcolor\b/gi
const texto = "El color azul y el Color rojo son mis colores favoritos"</span>;

"color:rgba(255,255,255,0.35)"pan>>// Reemplazar todas las ocurrencias (flag g) sin importar mayúsculas (flag i)pan>
const resultado = texto.replace(/\bcolor\b/gi, "tono"</span>);
console.log(resultado);
"color:rgba(255,255,255,0.35)"pan>>// "El tono azul y el tono rojo son mis tonos favoritos"pan>

Herramienta relacionada

Tester de Regex

Prueba tus expresiones regulares en tiempo real con resaltado de coincidencias y soporte para todos los flags.

Abrir Regex Tester →