Regex Tester

Prueba expresiones regulares con resaltado de coincidencias y grupos capturados.

sys-dev-toolkit.lovable.app/herramientas/regex-tester

Herramienta

2 coincidencias
[11] admin@example.com
[31] soporte@dominio.io

Qué problema resuelve

Necesitas depurar tu regex sin abrir un IDE.

Probar expresiones regulares es la forma más rápida de aprenderlas y también la de depurar por qué tu validador de email rechaza direcciones válidas. Este regex tester ejecuta tus patrones contra cualquier texto con resaltado de coincidencias, grupos capturados y flags configurables (g, i, m, s, u, y), usando el motor RegExp nativo de JavaScript.

Anatomía de una expresión regular

Una regex se compone de literales (`abc`), clases (`\d`, `\w`, `\s`, `[a-z]`), cuantificadores (`*`, `+`, `?`, `{n,m}`), anclas (`^`, `$`, `\b`) y grupos (`(...)`, `(?:...)`, `(?<nombre>...)`). Los grupos capturados extraen partes del match; los no-capturados agrupan sin capturar y son más rápidos.

Flags y qué cambia cada uno

`g` (global) busca todas las coincidencias en lugar de solo la primera. `i` ignora mayúsculas/minúsculas. `m` (multilínea) hace que ^ y $ coincidan al inicio/fin de cada línea. `s` (dotAll) permite que `.` coincida con \n. `u` habilita Unicode y `\p{...}` classes. `y` (sticky) empieza siempre desde lastIndex.

Trampas clásicas: backtracking catastrófico

Patrones como `(a+)+b` sobre `aaaaaaaaaX` pueden bloquear tu proceso durante minutos por explosión combinatoria (ReDoS). Sospecha de nested quantifiers y overlapping alternations. Usa cuantificadores posesivos o atomic groups si el motor los soporta; en JS, reformula el patrón. Ejecuta un timeout en producción cuando la regex venga del usuario.

Cuándo NO usar regex

Para parsear HTML, JSON o CSV: usa parsers dedicados (DOMParser, JSON.parse, papaparse). Para direcciones de email: usa una regex sencilla que capture el 99 % (`^[^@\s]+@[^@\s]+\.[^@\s]+$`) y verifica el resto con un envío de confirmación. Para validar números de teléfono internacionales: usa libphonenumber-js.

Casos de uso comunes

  • Extraer IPs, emails o URLs de un log grande.
  • Refactorizar código con find & replace regex en tu IDE.
  • Validar formatos de entrada en un formulario web.
  • Auditar código en busca de patrones peligrosos (grep -RE).

Buenas prácticas

  • Prefiere clases explícitas (`[0-9]`) a atajos (`\d`) cuando el alcance importe.
  • Nombra los grupos con `(?<year>\d{4})` para código legible.
  • Precompila regex costosas en variables al inicio de la función.
  • Añade timeouts si aceptas patrones desde el exterior.