Explicador de expresiones regulares

Pega una expresión regular, con o sin barras, y obtén un árbol de sus partes con una explicación sencilla de cada una: qué acepta una clase de caracteres, cuántas veces repite un cuantificador, qué captura un grupo y qué comprueba un lookahead. Los errores se muestran con su posición.

Un patrón como \d{3}-\d{4}, o un literal como /\d+/g
/^(?<user>[\w.+-]+)@([a-z\d-]+\.)+[a-z]{2,}$/i
  • ii: ignora mayúsculas y minúsculas, A coincide con a.
  • ^El inicio del texto.
  • (?<user>[\w.+-]+)Grupo de captura n.º 1 llamado «user»:
  • +Una o más veces, todas las posibles (codicioso):
  • [\w.+-]Un carácter de este conjunto:
  • \wUn carácter de palabra: letra latina A–Z o a–z, dígito 0–9 o guion bajo. La ñ y las vocales con tilde no cuentan.
  • .+-Uno de los caracteres . + -.
  • @El carácter «@».
  • +Una o más veces, todas las posibles (codicioso):
  • ([a-z\d-]+\.)Grupo de captura n.º 2:
  • +Una o más veces, todas las posibles (codicioso):
  • [a-z\d-]Un carácter de este conjunto:
  • a-zUn carácter de «a» a «z».
  • \dUn dígito del 0 al 9.
  • -El carácter «-».
  • \.«.» literalmente (un carácter especial escapado con \).
  • {2,}2 o más veces, todas las posibles (codicioso):
  • [a-z]Un carácter de este conjunto:
  • a-zUn carácter de «a» a «z».
  • $El final del texto.

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Escribe o pega un patrón, como ^\d{3}-\d{4}$, o un literal completo como /colou?r/gi.
  2. Si no pegaste un literal, escribe los flags en el cuadro Flags.
  3. Lee el árbol: a la izquierda cada parte del patrón y a la derecha lo que hace. Las filas sangradas pertenecen al grupo, la clase o el cuantificador de encima.

Cómo funciona

La herramienta analiza el patrón con la gramática de JavaScript: primero las alternativas separadas por |, luego los elementos con sus cuantificadores y, dentro, grupos, clases y escapes. Varios caracteres normales seguidos se muestran como un trozo de texto, salvo que los siga un cuantificador: en abc+ solo se repite la c, así que el árbol muestra el texto «ab» y luego «una o más veces» para la c.

Sin los flags u ni v, los navegadores aceptan algunas formas antiguas (una { o ] sueltas, un escape desconocido como \q que significa q), y el explicador también. Después del análisis el patrón se compila con new RegExp, así que nunca se explica como válido un patrón que JavaScript rechazaría.

Ejemplo

^(?<year>\d{4})-(0[1-9]|1[0-2])$ se lee así:

  • ^ el inicio del texto;
  • (?<year>…) grupo de captura n.º 1 llamado «year»: exactamente 4 veces, un dígito del 0 al 9;
  • - el carácter «-»;
  • (…) grupo de captura n.º 2: una de 2 alternativas — el carácter «0» y un carácter de «1» a «9», o el carácter «1» y un carácter de «0» a «2»;
  • $ el final del texto.

Así acepta 2026-07 y 2026-12, pero no 2026-13.

Consejos

  • Añade el flag m si ^ y $ deben funcionar en cada línea de un texto de varias líneas.
  • El punto no coincide con saltos de línea salvo que añadas el flag s.
  • Cuando la explicación coincida con lo que querías, prueba el patrón con texto real en el probador de regex.

Preguntas frecuentes

¿Qué variante de regex explica?

La de JavaScript (ECMAScript), la de RegExp en navegadores y Node.js. Gran parte de la sintaxis coincide con PCRE, Python y Java, pero hay diferencias: por ejemplo, \w y \d solo coinciden con ASCII en JavaScript incluso con el flag u, y no hay cuantificadores posesivos ni \A.

¿Puedo pegar /patrón/flags?

Sí. Un texto que empieza por / y termina en / seguido de letras se lee como literal, y sus flags se usan en lugar del cuadro Flags.

¿Por qué \w no reconoce la ñ ni las tildes?

En JavaScript \w es exactamente [A-Za-z0-9_] y \d es [0-9], con o sin el flag u. Para letras del español usa [a-zA-ZáéíóúüñÁÉÍÓÚÜÑ] o \p{L} con el flag u, que es cualquier letra de cualquier alfabeto.

¿Qué significa codicioso o perezoso?

Un cuantificador codicioso (+, *, {2,}) toma tantas repeticiones como puede y devuelve algunas solo si el resto del patrón falla. Añadir ? (+?, *?) lo vuelve perezoso: toma las menos posibles y añade más solo cuando hace falta.

¿Qué no puede explicar?

Los escapes octales antiguos como \07 y las operaciones de conjuntos del flag v (clases anidadas, && y --) se rechazan con un mensaje. Además, tu navegador compila el patrón, así que todo lo que JavaScript rechaza se indica como error.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 4 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.