Probador y depurador de regex gratis
Prueba y depura expresiones regulares en tiempo real con explicaciones. Gratis, rápido y funciona íntegramente en tu navegador, sin registro.
Actualizado
Regex Tester
Test and debug regular expressions with real-time highlighting, capture group colors, pattern explanation, code generation for 10 languages, multi-line testing, and step-by-step debugger.
Regular Expression
Common Patterns Library28
Test Input
Quick Reference (Cheat Sheet)
Privacy First: All processing happens locally in your browser. Your patterns and test data are never sent to any server. History is stored in your browser's localStorage.
Preguntas Frecuentes
¿Qué es el Regex Tester?
El Regex Tester es una herramienta en línea gratuita que te permite probar y depurar expresiones regulares en tiempo real, con resaltado de coincidencias y explicaciones.
¿Es gratis el Regex Tester?
Sí, es completamente gratis y no requiere registro. Toda la búsqueda de coincidencias se realiza del lado del cliente, en tu navegador.
¿Explica el patrón de la expresión regular?
Sí, el Regex Tester ofrece explicaciones legibles de tus patrones de expresiones regulares para ayudarte a comprenderlos y depurarlos.
¿Están seguros mis datos con esta herramienta?
Por supuesto. El Regex Tester & Debugger procesa todo del lado del cliente, en tu navegador. No se sube ni se almacena ningún dato en ningún servidor. Tu contenido permanece siempre privado en tu dispositivo.
¿Funciona el Regex Tester & Debugger en dispositivos móviles?
Sí, el Regex Tester & Debugger es totalmente adaptable y funciona en smartphones y tabletas. Puedes usarlo en cualquier dispositivo con un navegador web moderno, sin necesidad de descargar ninguna app.
¿Necesito crear una cuenta para usar esta herramienta?
No se necesita ninguna cuenta ni registro. Solo abre el Regex Tester & Debugger en tu navegador y empieza a usarlo de inmediato. No hay registros obligatorios ni restricciones de uso.
¿Cómo uso el Regex Tester & Debugger?
Simplemente introduce tu contenido en el campo indicado, ajusta las opciones a tu gusto y la herramienta lo procesará al instante. Después puedes copiar el resultado al portapapeles o descargarlo.
¿Qué navegadores son compatibles?
El Regex Tester & Debugger funciona en todos los navegadores modernos, incluidos Chrome, Firefox, Safari, Edge y Opera. Para una mejor experiencia, usa la última versión de tu navegador preferido.
¿Qué hacen las marcas de regex g, i, m, s, u e y?
Las marcas cambian cómo el motor aplica tu patrón. La marca g (global) encuentra todas las coincidencias en lugar de detenerse en la primera. La marca i (ignorar mayúsculas/minúsculas) hace coincidir letras sin importar si están en mayúscula o minúscula. La marca m (multilínea) hace que los anclajes ^ y $ se apliquen a cada línea en lugar de solo a la cadena completa. La marca s (dotall) permite que el punto también coincida con saltos de línea. La marca u (unicode) activa el manejo completo de Unicode y un análisis más estricto, algo que importa para emojis y texto que no usa el alfabeto latino. La marca y (sticky) coincide solo desde la posición actual del motor, lo que es útil al tokenizar una entrada pieza por pieza. Las marcas se pueden combinar libremente, así que gi encuentra todas las coincidencias ignorando mayúsculas y minúsculas. Esta herramienta expone las seis como interruptores, para que puedas activarlas y desactivarlas y ver cómo se actualizan en vivo el resaltado de coincidencias y el contador, y así entender exactamente cómo afecta cada una a tu resultado.
¿Qué es el backtracking catastrófico y cómo lo evito?
El backtracking catastrófico ocurre cuando un patrón tiene cuantificadores anidados o superpuestos, como (.*)+ o (a+)+, que obligan al motor a probar un número exponencial de formas de coincidir antes de rendirse. Con una cadena corta y bien formada todo parece normal, pero con una entrada un poco más larga o mal formada el tiempo de coincidencia puede dispararse de microsegundos a segundos, colgando en la práctica tu programa. Para evitarlo, usa cuantificadores que no se superpongan, prefiere clases de caracteres específicas en lugar de comodines amplios como .*, y ancla los patrones cuando sea posible. Esta herramienta señala las construcciones riesgosas mientras escribes y muestra una etiqueta de tiempo de ejecución que va de Rápido a Muy Lento, para que detectes un patrón peligroso antes de que llegue a producción. El depurador paso a paso, limitado a 100 pasos para que un patrón descontrolado no pueda bloquear la página, también te permite observar cómo el motor llega a cada coincidencia. Pega tu expresión arriba y observa la etiqueta para confirmar que se mantiene rápida.
¿Cuál es la diferencia entre un grupo de captura y un grupo sin captura?
Un grupo de captura, escrito con paréntesis simples como (\d{4}), agrupa una parte del patrón y además almacena lo que coincidió para que puedas referenciarlo luego por número, o por nombre con la sintaxis (?<year>\d{4}). Un grupo sin captura, escrito (?:...), agrupa una parte del patrón para aplicar un cuantificador o una alternancia sin guardar el texto coincidente, lo que mantiene limpia la numeración de tus grupos y es ligeramente más eficiente. Usa grupos de captura cuando necesites extraer o reutilizar un valor en un reemplazo; usa grupos sin captura solo por razones de estructura. Ambos tipos se pueden anidar, y los cuantificadores se pueden aplicar a cualquiera de los dos, así que (?:ab)+ repite el par sin capturarlo. Esta herramienta lista cada grupo de captura, numerado o con nombre, junto con el valor que extrajo de tu texto de prueba, resaltando cada uno en el texto coincidente, para que confirmes que tus grupos extraen exactamente los datos que esperas antes de incorporarlos a tu código.
¿Cómo uso referencias inversas como $1 en buscar y reemplazar?
Las referencias inversas permiten que un reemplazo reutilice el texto capturado por los grupos de tu patrón. En las cadenas de reemplazo, el primer grupo de captura se referencia como $1, el segundo como $2, y así sucesivamente, así que un patrón como (\w+)@(\w+) con el reemplazo $2.$1 intercambia las dos mitades de un token alrededor del signo arroba. Así es como se reformatean fechas, se reordenan nombres o se reescriben URLs sin volver a escribir el contenido coincidente. Los grupos con nombre también se pueden referenciar según la sintaxis que admita tu lenguaje de destino. Ten en cuenta que dentro del propio patrón una referencia inversa como \1 coincide con el mismo texto que el grupo ya capturó, lo cual es distinto de usar $1 en el reemplazo. El modo de buscar y reemplazar de esta herramienta previsualiza en vivo el resultado sustituido mientras editas la cadena de reemplazo, con $1, $2, etc. resolviéndose exactamente igual que en código real. Cambia a la pestaña de reemplazo de arriba para probar tu sustitución antes de pegarla en tu proyecto.
¿Por qué el mismo regex se comporta distinto en Python o Java?
Los dialectos de regex no son idénticos entre lenguajes. Esta herramienta ejecuta el motor nativo de JavaScript (ECMAScript), el mismo que se usa en Node y en los navegadores, pero el re de Python, el Pattern de Java, el PCRE de PHP, el RE2 de Go y otros difieren en el soporte de lookbehind, la sintaxis de grupos con nombre, el manejo de marcas en línea y cómo se pasan las marcas. Un patrón que funciona aquí puede necesitar pequeños ajustes en otro lugar, especialmente en lo relacionado con Unicode y referencias inversas. Los motores basados en RE2, como el de Go, incluso rechazan por completo algunas construcciones para garantizar un tiempo lineal. Por eso el generador de código incorporado exporta tu expresión terminada para JavaScript, TypeScript, Python, Java, PHP, Go, Ruby, C#, Rust y Swift, traduciendo las marcas al idioma propio de cada lenguaje, como re.IGNORECASE o Pattern.CASE_INSENSITIVE, y señalando las particularidades que conlleva cada uno. El flujo de trabajo más seguro es validar primero aquí contra un texto de muestra representativo, ya que un patrón que parece correcto puede seguir fallando en casos límite en otro dialecto. Ajusta tu patrón arriba y luego copia el código generado para tu lenguaje de destino para evitar sorpresas de dialecto.
Embed This Tool
Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.
<iframe src="https://getthetoolbox.com/embed/code-tools-regex-tester" title="Free Regex Tester & Debugger — The Toolbox" width="100%" height="320" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/code-tools/regex-tester?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free Regex Tester & Debugger</a> by The Toolbox</p>Herramientas Relacionadas
Minificador de CSS gratis en línea
Minifica código CSS para reducir el tamaño del archivo y mejorar la velocidad de carga. Gratis, rápido y funciona totalmente en tu navegador sin necesidad de registro.
Minificador de JavaScript gratis
Minifica código JavaScript para reducir el tamaño del archivo y mejorar el rendimiento. Gratis, rápido y funciona totalmente en tu navegador sin necesidad de registro.
Minificador de HTML gratis online
Minifica código HTML para reducir el tamaño de la página y el tiempo de carga. Gratis, rápido y funciona íntegramente en tu navegador, sin registro.
Formateador y embellecedor de SQL gratis
Formatea y embellece consultas SQL para una mejor legibilidad. Gratis, rápido y funciona íntegramente en tu navegador, sin registro.
Sobre el Probador y Depurador de Expresiones Regulares
El Probador y Depurador de Expresiones Regulares es un banco de trabajo online gratuito para crear y depurar expresiones regulares. Escribe un patrón, pega un texto de prueba y la herramienta resalta cada coincidencia en tiempo real, lista los grupos de captura extraídos y señala los errores de sintaxis en cuanto aparecen. Está pensada para desarrolladores, gente que trabaja con datos y cualquiera que se haya quedado mirando una pared de barras invertidas preguntándose por qué un patrón coincide con todo o con nada.
Las expresiones regulares son difíciles de leer, así que la herramienta va más allá de encontrar coincidencias: explica qué hace tu patrón, avisa sobre construcciones que pueden colgar el motor y genera código listo para pegar en diez lenguajes, para que la expresión ajustada aquí pase directo a tu proyecto.
Todo se ejecuta en tu navegador usando el motor nativo de expresiones regulares de JavaScript (la misma implementación de ECMAScript que usa tu código en Node y en el navegador). Nada de lo que escribas —patrón, cadena de prueba o reemplazo— se sube ni se almacena en un servidor. No hace falta registrarse y no hay límite de uso.
Cómo probar y depurar un patrón
Escribe tu expresión y activa cualquiera de las seis marcas (flags) que controlan su comportamiento:
- g (global) — encuentra todas las coincidencias en lugar de detenerse en la primera.
- i (ignorar mayúsculas/minúsculas) — hace coincidir letras sin importar si están en mayúscula o minúscula.
- m (multilínea) — hace que
^y$se anclen a cada línea, no solo a la cadena completa. - s (dotall) — permite que
.coincida también con saltos de línea. - u (unicode) — activa el manejo completo de Unicode y un análisis más estricto.
- y (sticky) — coincide solo desde la posición actual del motor.
A medida que editas, las coincidencias se resaltan en el texto de prueba y cada grupo de captura, numerado o con nombre, se lista junto con su valor. Una etiqueta de tiempo de ejecución clasifica cada corrida de Rápido a Muy Lento, y un depurador paso a paso muestra cómo el motor llega a cada coincidencia (limitado a 100 pasos para que un patrón descontrolado no bloquee la página). Si escribes algo como (.*)+, la herramienta avisa sobre el backtracking catastrófico: cuantificadores anidados que pueden disparar el tiempo de coincidencia con ciertas entradas.
Reemplazar, probar en lote y exportar
Un modo de buscar y reemplazar previsualiza las sustituciones en vivo, con referencias inversas como $1 funcionando igual que en el código. La pestaña de multilínea permite comprobar un mismo patrón contra muchas líneas a la vez, útil para validar una columna de correos electrónicos o entradas de registro (logs). Cuando la expresión está lista, el generador de código la exporta para JavaScript, TypeScript, Python, Java, PHP, Go, Ruby, C#, Rust y Swift, con la traducción correcta de las marcas (el re.IGNORECASE de Python, el Pattern.CASE_INSENSITIVE de Java, etc.) y notas sobre las particularidades de cada lenguaje. Puedes copiar cualquier resultado, descargarlo o compartir toda la configuración como una URL que recarga el patrón, las marcas y el texto de prueba. Los patrones recientes se guardan en el almacenamiento local del navegador para volver a ellos más adelante.
Una biblioteca de patrones listos para usar
Si prefieres partir de un ejemplo ya probado, la biblioteca incorporada ofrece cerca de 30 patrones verificados que cubren los casos más frecuentes: direcciones de correo electrónico, URLs HTTP/HTTPS, números de teléfono de EE. UU. e internacionales, direcciones IPv4 e IPv6, direcciones MAC, fechas en formato ISO y estadounidense, horas en formato de 24 horas, colores hexadecimales, UUID, versiones semánticas, reglas de contraseñas seguras, formatos de tarjetas de crédito, slugs de URL, enlaces de Markdown y más. Cada uno incluye una descripción y un texto de ejemplo para que veas la coincidencia antes de adaptarlo. Son un punto de partida confiable, pero prueba siempre contra tus propios datos: un regex de "correo válido", por ejemplo, nunca puede coincidir por completo con la especificación de los correos electrónicos, y la mayoría de los patrones en producción son compromisos deliberados entre rigor y practicidad.
Por qué importa un probador
Una expresión regular que parece correcta puede, sin que lo notes, coincidir con demasiado o pasar por alto casos límite, y un solo cuantificador mal ubicado puede convertir un patrón rápido en uno que se traba con datos reales. Probar contra muestras representativas antes de publicar detecta ambos problemas. Pega tu patrón y algo de texto arriba para ver exactamente qué coincide, entender por qué, y llevar el resultado a tu código.