🎯

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

//g

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ónSignificadoEjemplo
.Cualquier carácter excepto salto de líneaa.c → abc, a1c, a-c
\dCualquier dígito (0-9)\d{3} → 123, 456
\DCualquier NO dígito\D+ → abc, ---
\wCarácter alfanumérico o guion bajo\w+ → hola, test_1
\WCualquier NO alfanumérico\W → @, !, espacio
\sEspacio en blanco (espacio, tab, salto línea)\s+ → espacios, tabs
\SCualquier NO espacio\S+ → hola, 123
\bLímite de palabra\bhola\b → "hola" exacto
^Inicio de cadena/línea^Hola → "Hola mundo"
$Fin de cadena/líneamundo$ → "Hola mundo"

Cuantificadores

Los cuantificadores controlan cuántas veces debe aparecer el elemento anterior para que haya coincidencia:

CuantificadorSignificadoEjemplo
*0 o más vecesab*c → ac, abc, abbc
+1 o más vecesab+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 clave
  • a|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 \w sin 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() o string.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. 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. 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. 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. 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.

Preguntas Frecuentes

¿Qué es una expresión regular (regex)?

Una expresión regular (regex o regexp) es una secuencia de caracteres que define un patrón de búsqueda. Se utiliza para buscar, validar, extraer o reemplazar texto en cadenas. Por ejemplo, el patrón ^[a-z]+@[a-z]+\.[a-z]{2,}$ valida direcciones de email básicas. Las regex son una herramienta fundamental en programación, disponible en prácticamente todos los lenguajes: JavaScript, Python, Java, PHP, Go, Ruby, etc.

¿Cómo funciona este tester de regex?

Nuestro tester ejecuta tu expresión regular contra el texto de prueba en tiempo real directamente en tu navegador usando el motor de regex de JavaScript (RegExp). Muestra todas las coincidencias resaltadas visualmente, los grupos de captura, las posiciones de cada match y los flags activos. Todo el procesamiento es local — tu código y patrones nunca se envían a ningún servidor.

¿Qué son los flags en una expresión regular?

Los flags (o modificadores) alteran el comportamiento de la expresión regular. Los más comunes son: g (global - busca todas las coincidencias, no solo la primera), i (case-insensitive - ignora mayúsculas/minúsculas), m (multiline - ^ y $ coinciden con inicio/fin de cada línea, no solo del texto completo), s (dotAll - el punto . también coincide con saltos de línea), u (unicode - habilita soporte Unicode completo), y (sticky - busca solo desde la posición actual).

¿Las regex de JavaScript son iguales a las de otros lenguajes?

La sintaxis base es similar (PCRE - Perl Compatible Regular Expressions), pero hay diferencias. JavaScript no soporta lookbehind de ancho variable ni recursión regex (que sí soportan PHP/PCRE). Python tiene sintaxis ligeramente diferente para grupos nombrados. Java requiere doble escape en strings. Sin embargo, los patrones básicos (\d, \w, \s, cuantificadores, grupos, alternación) funcionan igual en todos los lenguajes.

¿Cuándo debo usar expresiones regulares?

Las regex son ideales para: validar formatos (emails, teléfonos, URLs, códigos postales), buscar y extraer patrones en texto, reemplazar texto con patrones complejos, parsear logs y archivos estructurados, y limpiar/transformar datos. No son recomendables para: parsear HTML/XML complejo (usa un parser DOM), validar datos que requieren lógica de negocio (como verificar si un email realmente existe), o cuando una simple operación de string (split, includes, startsWith) es suficiente.

¿Es seguro probar mi código aquí?

Completamente seguro. Todo el procesamiento se realiza en tu navegador usando JavaScript nativo. Tus expresiones regulares y textos de prueba nunca se envían a ningún servidor. Puedes verificarlo desconectando tu internet — la herramienta seguirá funcionando normalmente.