Blog
Español

Probar expresiones regulares online — Regex JavaScript

Probador de regex JavaScript con flags, resaltado, tabla de grupos y vista previa del reemplazo

Funciona en tu navegador · no se sube nada

Flags

Qué es

Es muy fácil equivocarse por poco con una expresión regular. Escribe un patrón y un texto y esta herramienta te muestra al instante dónde coincide, marca cada coincidencia en color y enumera todas con su posición y sus grupos de captura. Añade una cadena de reemplazo para ver cómo queda el texto sustituido.

Cómo se usa

  1. Escribe el patrón sin las barras que lo rodean (si pegas un /patrón/gi copiado del código, se separa en patrón y flags), por ejemplo (\d+)-(?<word>[a-z]+).
  2. Marca los flags que necesites. g, que busca todas las coincidencias, viene activado.
  3. Pega el texto de prueba. Las coincidencias se resaltan y la tabla muestra la posición y los grupos de cada una.
  4. En el campo de reemplazo usa $1, $<name> o $& para ver el resultado y cópialo. Para borrar todas las coincidencias, activa Mostrar el reemplazo y deja el campo vacío.

Cómo funciona

  • Flags: g global, i sin distinguir mayúsculas, m hace que ^ y $ funcionen por línea, s permite que . coincida con saltos de línea, u activa el modo Unicode, y solo busca en la posición actual (sticky).
  • Sin g solo se devuelve la primera coincidencia. Con g e y a la vez, solo se encuentran las coincidencias que van seguidas sin huecos.
  • Las coincidencias vacías (a*, ^, el patrón vacío) hacen avanzar la posición un carácter y la búsqueda continúa; con u, el paso es un punto de código completo.
  • La sintaxis de reemplazo es la de String.prototype.replace: $$, $&, $`, $', de $1 a $99 y $<name>.
  • Protecciones: como máximo 1000 coincidencias, 200.000 caracteres de texto y 5000 de patrón, más un límite de ejecución de 1,5 segundos. El límite funciona ejecutando la búsqueda en un Web Worker y deteniéndolo, por eso la página principal nunca se congela.

Ejemplos

Patrón Flags Texto Resultado
\d+ g a1 b22 c333 1, 22, 333
[a-záéíóúüñ]+ g año café 123 año, café
a* g baac cuatro coincidencias, en las posiciones 0, 1 (aa), 3 y 4
(?<y>\d{4})-(\d{2}) 2024-05 grupo 1 y = 2024, grupo 2 = 05

Notas

  • [a-z] no incluye letras acentuadas ni la ñ, así que añádelas a la clase o usa \p{L} con el flag u para cualquier letra. Los emojis se pueden buscar con el flag u y \p{Emoji_Presentation}.
  • Tu patrón y tu texto nunca se envían a un servidor.

Preguntas frecuentes

¿Qué sabor de regex usa?

El motor de expresiones regulares de JavaScript (ECMAScript) de tu propio navegador, así que la sintaxis difiere en algunos puntos de Python, PCRE o Java. No hay cuantificadores posesivos ni flags en línea como (?i), y los grupos con nombre se escriben (?<nombre>...).

¿Qué pasa si un patrón tarda demasiado?

La búsqueda se ejecuta en un Web Worker aparte que se detiene a los 1,5 segundos. Una repetición anidada como (a+)+$ puede volverse exponencialmente lenta con una entrada solo un poco más larga (backtracking catastrófico). Si ocurre, verás un mensaje y la página seguirá respondiendo.

¿Hay límites de coincidencias o de longitud del texto?

Se muestran las primeras 1000 coincidencias, el texto puede tener hasta 200.000 caracteres y el patrón hasta 5000. Por encima de eso, la lista se recorta o aparece un mensaje.

¿Un patrón que coincide con la cadena vacía puede quedarse en bucle?

No. Tras una coincidencia vacía, la posición de búsqueda (lastIndex) avanza un carácter, así que el bucle siempre termina. Con el flag u avanza un punto de código completo, de modo que un emoji nunca se parte.

¿Echas en falta alguna herramienta?