Probador de regex
Prueba regex JavaScript con resaltado en vivo, grupos de captura y vista previa de replace.
Matches in text
Capture groups
| # | Offset | Match | Group |
|---|---|---|---|
|
—
|
Replace preview
Quick reference
\d
Digit (0–9)
\w
Word char (a-z, 0-9, _)
\s
Whitespace
[^abc]
Anything except a/b/c
^/$
Start / end of line (with m flag)
a*
Zero or more
a+
One or more
a?
Zero or one
a{n,m}
Between n and m repetitions
(?<name>…)
Named capture group
(?=…)
Lookahead
(?<=…)
Lookbehind
Sobre esta herramienta
Regex Tester evalúa expresiones regulares de JavaScript contra un texto de prueba y resalta cada coincidencia en su lugar. El campo del patrón acepta la sintaxis completa de regex de ECMAScript — anclas, clases de caracteres, alternación, lookahead, lookbehind, grupos de captura nombrados, escapes de propiedades Unicode — con interruptores separados para los flags estándar (g global, i ignora mayúsculas, m multilínea, s el punto cubre saltos de línea, u Unicode, y sticky). Las coincidencias se colorean y los grupos de captura se listan debajo de cada resaltado.
Más allá de la búsqueda, la herramienta puede ejecutar una vista previa de reemplazo en paralelo con el original — escriba la cadena de reemplazo (con retrorreferencias $1 / $<nombre>) y vea exactamente lo que producirá su regex sobre el texto de prueba. Cada operación corre en su navegador con el motor nativo RegExp, así que lo que depura aquí es exactamente lo que se ejecutará en producción JavaScript (Node, Bun, Deno y todos los navegadores).
Cuándo utilizar esta herramienta
- Construir validadores de entrada. Patrones de email, teléfono, código postal — diseñe y verifique con datos de prueba realistas antes de llevarlos al código.
- Analizar ficheros de log. Itere un patrón con múltiples capturas contra líneas reales hasta que cada campo salga limpio.
- Edición masiva. Pruebe un patrón find/replace antes de ejecutarlo sobre cientos de ficheros en su editor.
- Aprender regex. Coincidencias resaltadas más feedback instantáneo es la forma más rápida de interiorizar lookaround, anclas y retrorreferencias.
Sobre los sabores de regex
Esta herramienta usa regex de JavaScript (ECMAScript 2018+). PCRE, Python, .NET, Go y Java difieren ligeramente — PCRE soporta patrones recursivos que JavaScript no tiene, el módulore de Python carece de lookbehind en algunas versiones, Go usa RE2 que prohíbe retrorreferencias por completo. Si su objetivo es un entorno distinto de JS, verifique las características específicas del sabor en el extremo receptor. Para patrones puramente compatibles con ECMAScript esta herramienta es autoritativa.
Preguntas frecuentes
¿Cuál es la diferencia entre los flags g, m y s?
g (global) hace que .match() y .replace() encuentren todas las coincidencias en vez de solo la primera. m (multilínea) hace que ^ y $ coincidan en los saltos de línea dentro del texto, no solo al inicio/fin de la cadena entera. s (dotall) hace que . también coincida con saltos de línea (por defecto los omite). Son independientes — combine como necesite.
¿Por qué no funciona mi lookbehind?
(?<=...) requiere ECMAScript moderno (2018+) y está disponible en todos los navegadores evergreen actuales y Node 10+. Runtimes antiguos (IE 11, Safari anterior a 16.4, Node muy viejo) rechazan el patrón en tiempo de compilación. Nuestro tester usa el motor del navegador, así que si su tester funciona pero el runtime de destino falla, el destino es demasiado antiguo. Solución: reescribir sin lookbehind usando un grupo no capturador y un corte de cadena.
¿Cómo pruebo contra una cadena larga?
¿Qué es el «retroceso catastrófico»?
(a+)+ contra una cadena larga que termina en no-coincidencia. El motor de regex prueba cada permutación antes de rendirse. Los motores JavaScript modernos no tienen timeout, así que la página puede colgarse. Solución: reescriba sin cuantificadores anidados, use grupos posesivos vía (?:a+), o ancle el patrón más estrictamente.