Regex Tester Online Gratis
Prueba y depura expresiones regulares en tiempo real con resaltado visual de coincidencias, soporte para todos los flags y ejemplos predefinidos. 100% privado — todo se procesa en tu navegador.
🎯 Expresión Regular
Flags:
📝 Texto de Prueba
📊 Resultados
Ingresa un patrón y texto para ver los resultados
Guía Completa de Expresiones Regulares (Regex)
Las expresiones regulares son una de las herramientas más poderosas disponibles para cualquier programador. Permiten definir patrones de texto complejos en una sintaxis compacta que, una vez aprendida, se aplica en prácticamente cualquier lenguaje de programación y editor de código.
Caracteres Especiales (Metacaracteres)
Los metacaracteres son el vocabulario básico de las regex. Cada uno tiene un significado especial que amplía las capacidades de búsqueda más allá de texto literal:
| Patrón | Significado | Ejemplo |
|---|---|---|
. | Cualquier carácter excepto salto de línea | a.c → abc, a1c, a-c |
\d | Cualquier dígito (0-9) | \d{3} → 123, 456 |
\D | Cualquier NO dígito | \D+ → abc, --- |
\w | Carácter alfanumérico o guion bajo | \w+ → hola, test_1 |
\W | Cualquier NO alfanumérico | \W → @, !, espacio |
\s | Espacio en blanco (espacio, tab, salto línea) | \s+ → espacios, tabs |
\S | Cualquier NO espacio | \S+ → hola, 123 |
\b | Límite de palabra | \bhola\b → "hola" exacto |
^ | Inicio de cadena/línea | ^Hola → "Hola mundo" |
$ | Fin de cadena/línea | mundo$ → "Hola mundo" |
Cuantificadores
Los cuantificadores controlan cuántas veces debe aparecer el elemento anterior para que haya coincidencia:
| Cuantificador | Significado | Ejemplo |
|---|---|---|
* | 0 o más veces | ab*c → ac, abc, abbc |
+ | 1 o más veces | ab+c → abc, abbc (no ac) |
? | 0 o 1 vez (opcional) | colou?r → color, colour |
{n} | Exactamente n veces | \d{4} → 2026, 1234 |
{n,} | n o más veces | \d{2,} → 12, 123, 1234 |
{n,m} | Entre n y m veces | \d{2,4} → 12, 123, 1234 |
*? | 0 o más (lazy/no codicioso) | Coincide lo mínimo posible |
+? | 1 o más (lazy/no codicioso) | Coincide lo mínimo posible |
Grupos y Alternación
Los grupos permiten capturar porciones del texto que coincide, y la alternación permite definir opciones:
(abc)— Grupo de captura: captura "abc" como un grupo accesible después del match(?:abc)— Grupo sin captura: agrupa sin capturar, útil para aplicar cuantificadores(?<nombre>abc)— Grupo nombrado: captura con un nombre accesible por clavea|b— Alternación: coincide con "a" O "b"(?=abc)— Lookahead positivo: verifica que "abc" sigue, sin consumir(?!abc)— Lookahead negativo: verifica que "abc" NO sigue(?<=abc)— Lookbehind positivo: verifica que "abc" precede(?<!abc)— Lookbehind negativo: verifica que "abc" NO precede
Clases de Caracteres
Las clases de caracteres definen conjuntos de caracteres que pueden coincidir en una posición:
[abc]— Coincide con a, b o c[^abc]— Coincide con cualquier carácter EXCEPTO a, b o c[a-z]— Rango: cualquier letra minúscula de la a a la z[A-Za-z0-9]— Cualquier letra o dígito (equivalente a\wsin guion bajo)[áéíóú]— Caracteres Unicode específicos (vocales con acento)
Patrones Regex Más Útiles para Desarrolladores
Aquí tienes una colección de expresiones regulares probadas y listas para usar en tus proyectos:
Validación de Email
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ — Valida la estructura básica de un email. Para validación completa según RFC 5322, se recomienda usar librerías especializadas, ya que el estándar permite caracteres inusuales que complican enormemente la regex.
Validación de URL
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*) — Detecta URLs HTTP y HTTPS válidas incluyendo paths, query strings y fragments.
Validación de Contraseña Fuerte
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$ — Al menos 8 caracteres con minúscula, mayúscula, número y carácter especial.
Extraer Números de un Texto
-?\d+\.?\d* — Captura números enteros y decimales, positivos y negativos. Útil para parsear datos numéricos de texto no estructurado.
Validar Dirección IP (IPv4)
^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ — Valida direcciones IPv4 verificando que cada octeto esté entre 0 y 255.
Errores Comunes con Expresiones Regulares
- No escapar metacaracteres: Si quieres buscar un punto literal, debes escribir
\.en lugar de.(que coincide con cualquier carácter). - Regex demasiado codicioso:
.*es "greedy" (codicioso) y consume todo lo posible. Usa.*?para coincidencia mínima. - No usar anclas: Sin
^y$, tu regex puede coincidir con una subcadena cuando esperabas validar la cadena completa. - Olvidar el flag global: Sin el flag
g, la regex solo encuentra la primera coincidencia. - Catastrófica complejidad: Patrones como
(a+)+$pueden causar "catastrophic backtracking". Evita cuantificadores anidados. - Usar regex para todo: A veces un simple
string.includes()ostring.split()es más legible y eficiente que una regex.
Rendimiento de las Expresiones Regulares
Las regex pueden ser extremadamente rápidas o extremadamente lentas dependiendo de cómo se escriban. Algunas buenas prácticas para optimizar rendimiento:
- Sé específico:
[0-9]es más rápido que.con condiciones - Usa anclas:
^patrón$le dice al motor exactamente dónde buscar - Evita backtracking: Prefiere cuantificadores posesivos o atómicos cuando sea posible
- Compila una vez: Almacena el
new RegExp()en una variable y reutilízalo - Prueba con datos reales: Una regex que funciona con textos cortos puede ser lentísima con miles de líneas
Cómo Usar Esta Herramienta
- 1
Escribe tu expresión regular
Ingresa tu patrón regex en el campo superior. El formato es /patrón/flags. Puedes escribir solo el patrón — los flags se configuran con los botones.
- 2
Configura los flags
Selecciona los modificadores que necesitas: g (global), i (insensible a mayúsculas), m (multilinea), s (dotAll), u (unicode) o y (sticky).
- 3
Ingresa el texto de prueba
Escribe o pega el texto contra el que quieres probar tu expresión regular en el área de texto inferior.
- 4
Analiza los resultados
Las coincidencias se resaltan visualmente en el texto. En el panel de resultados verás el número de matches, la posición de cada uno, y los grupos de captura si existen.