Probar regex online | Expresiones regulares JavaScript | Awesome Toolkit

Probador de Expresiones Regulares

Prueba tus expresiones regulares en tiempo real. Coincidencias resaltadas, grupos de captura mostrados, flags configurables.

Por Marshkalk

Coincidencias resaltadas

Cómo usar el probador de Regex

  1. Introduce tu patrón de expresión regular en el campo Patrón.
  2. Activa los flags según necesites: g encuentra todas las coincidencias, i ignora mayúsculas/minúsculas, m hace que ^ y $ coincidan con límites de línea, s hace que . coincida con saltos de línea.
  3. Pega tu cadena de prueba, las coincidencias se resaltan en tiempo real y los grupos de captura se muestran abajo.

Referencia rápida de sintaxis regex JavaScript

TokenSignificado
.Cualquier carácter excepto salto de línea
\d / \DDígito / no dígito
\w / \WCarácter de palabra [a-zA-Z0-9_] / no palabra
\s / \SEspacio en blanco / no espacio
^ / $Inicio / fin de cadena (o línea con flag m)
\bLímite de palabra
+ / * / ?Uno o más / cero o más / opcional
{n,m}Entre n y m repeticiones
[abc]Clase de caracteres
(abc)Grupo de captura
(?:abc)Grupo sin captura
a|bAlternancia (a o b)

Patrones regex más comunes

  • Dirección email: [a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}
  • URL: https?://[^\s/$.?#][^\s]*
  • Dirección IP: \b(?:\d{1,3}\.){3}\d{1,3}\b
  • Fecha (AAAA-MM-DD): \d{4}-\d{2}-\d{2}
  • Color hex: #(?:[0-9a-fA-F]{3}){1,2}\b

Cuantificadores codiciosos vs. perezosos

Por defecto, los cuantificadores (+, *) son codiciosos: coinciden con tanto como sea posible. Añade ? después del cuantificador para hacerlo perezoso (mínimo posible): +?, *?. Ejemplo: <.+?> coincide con etiquetas HTML individuales en lugar de todo desde el primer < hasta el último >.

Diferencias entre motores: JavaScript vs PCRE vs RE2

La sintaxis regex es parecida entre motores pero se comporta de forma diferente en puntos clave. Un patrón que funciona en el navegador puede fallar en PHP, Python o Go:

FuncionalidadJavaScript (esta herramienta)PCRE (PHP, Python, Perl)RE2 (Go, Rust)
Lookbehind (?<=...)Anchura fija (ES2018+)Anchura variableSolo anchura fija
Referencias hacia atrás No
Grupos atómicos (?>...)NoNo
Clases Unicode \p{L}Sí (con flag u)Sí (por defecto)
\d coincide con dígitos UnicodeNo (solo ASCII sin u)Sí (PCRE2 por defecto)No (solo ASCII)

5 errores frecuentes

  • Backtracking catastrófico: Un patrón como (a+)+b en una larga cadena de 'a' sin 'b' provoca backtracking exponencial y puede bloquear tu aplicación. Evita cuantificadores anidados en patrones superpuestos. Prueba siempre con entrada larga que no coincida.
  • \d y dígitos Unicode: Sin el flag u, \d solo coincide con dígitos ASCII 0-9, no con dígitos arabigo-indios (٠-٩) u otras formas Unicode. Añade u y usa \p{N} para todos los dígitos Unicode.
  • ^ y $ sin el flag m: Por defecto, ^ y $ coinciden con el inicio y el fin de toda la cadena. Para anclas por línea en texto multilínea, añade el flag m.
  • Cuantificador codicioso que se come demasiado: <.+> en <b>texto</b> coincide desde el primer < hasta el último >. Usa el perezoso <.+?> para capturar una etiqueta a la vez.
  • Puntos sin escapar en patrones de dominio: El punto coincide con cualquier carácter. ejemplo.com también coincide con ejemploXcom. Escapa los puntos literales: ejemplo\.com.