Saltar al contenido
MyDevToolbox

Probador de Regex

Híbrido

Prueba expresiones regulares con los motores de Python (re) y PCRE.

Se ejecuta en tu navegador con apoyo del servidor · Las entradas se guardan solo en este navegador, si lo permites

/ /
Coincidencias

Prueba expresiones regulares en tres motores reales

Las expresiones regulares parecen iguales en todas partes, pero cada motor tiene su propio dialecto. Un patrón que funciona en la consola de tu navegador puede fallar en un script de Python o en una regla de nginx. Este probador ejecuta tu patrón en el motor que realmente vas a usar: JavaScript (el RegExp nativo de tu navegador), Python (sintaxis y mensajes de error de re) y PCRE2, la biblioteca que hay detrás de las funciones preg_* de PHP, nginx, Apache y grep -P. Las coincidencias se resaltan mientras escribes, cada grupo de captura aparece con su posición y puedes previsualizar sustituciones.

Diferencias clave entre motores

  • Grupos con nombre: el re de Python exige (?P<nombre>…); JavaScript usa (?<nombre>…) y PCRE acepta ambas formas.
  • Reemplazos: JavaScript escribe $1 y $<nombre>, Python \1 y \g<nombre>, PCRE $1 y ${nombre}.
  • El modo verbose (x), que ignora espacios y permite comentarios, existe en Python y PCRE pero no en JavaScript.
  • Cuantificadores posesivos y grupos atómicos (a++, (?>…)) están disponibles en PCRE y en Python 3.11+, no en JavaScript.

Protegido frente al backtracking catastrófico

Los patrones con cuantificadores anidados como (a+)+$ o (a|aa)+$ pueden tardar un tiempo exponencial con ciertas entradas, una debilidad conocida como ReDoS. Esta herramienta detiene cualquier evaluación que dure más de un segundo –el motor de JavaScript se ejecuta en un Web Worker que se termina, el de Python tiene un límite de tiempo estricto y PCRE2 aplica su límite de backtracking– y te avisa de que el patrón es peligroso. Si ocurre aquí, también puede ocurrir en tu servidor de producción.

Ejemplos prácticos

  • ^\d{4}-\d{2}-\d{2}$: una fecha ISO como 2026-11-11.
  • (?<user>[\w.+-]+)@(?<domain>[\w-]+\.[\w.]+): separa un correo en usuario y dominio.
  • \b(?:\d{1,3}\.){3}\d{1,3}\b: encuentra direcciones con aspecto de IPv4 en un log.

Los patrones de JavaScript nunca salen de tu navegador. Los de Python y PCRE se evalúan en nuestro servidor y se descartan de inmediato; tu último patrón y texto solo se recuerdan en el localStorage de tu navegador.