Regex Tester

Prueba expresiones regulares con resaltado de coincidencias y grupos capturados.

toolboox.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.