Probador de Regex
Construye, prueba y depura expresiones regulares de JavaScript con resaltado en vivo, modo replace y patrones listos.
¿Qué es una expresión regular?
Una expresión regular (regex) es un mini lenguaje para buscar y transformar texto. Está detrás del find-in-files, análisis de logs, reglas de validación, lexers y la mayoría de funciones de buscar-y-reemplazar de los editores. Esta herramienta crea un RegExp en vivo en tu navegador, lo aplica al texto de prueba y muestra cada coincidencia más el resaltado en línea. Usa el motor estándar de JavaScript, así que lo que funciona aquí funciona igual en Node.js y en cualquier navegador moderno.
Cómo usar el probador
Escribe tu patrón (sin las barras /.../) en el campo, elige las flags que necesites y pega el texto de prueba debajo. Las coincidencias se resaltan en la vista previa y aparecen listadas con su posición en caracteres. Activa el Modo replace para ver el resultado de String.prototype.replace() con tu cadena de reemplazo — usa $& para el match completo y $1, $2 para grupos de captura. Los chips de preset cargan patrones comunes para que ajustes en vez de empezar de cero.
Chuleta de regex
Los tokens más útiles en un solo sitio. La regex de JavaScript sigue la sintaxis ECMAScript — cercana a PCRE, pero con alguna omisión (sin cuantificadores posesivos, sin patrones recursivos).
| Token | Significado |
|---|---|
. | Cualquier carácter (excepto salto de línea, salvo con la flag s) |
\d \w \s | Dígito, carácter de palabra (letras/dígitos/_), espacio |
^ $ | Inicio de cadena, fin de cadena (por línea con la flag m) |
* + ? | Cero o más, uno o más, cero o uno (codiciosos por defecto) |
{n,m} | Entre n y m repeticiones |
[abc] | Cualquier carácter del conjunto; usa [^abc] para negar |
(...) | Grupo de captura; usa (?:...) para un grupo sin captura |
| | Alternancia — coincide con cualquiera de los lados |
Preguntas frecuentes
¿Qué motor de regex usa?
¿Qué significa cada flag?
g busca todas las coincidencias (no solo la primera). i ignora mayúsculas/minúsculas. m hace que ^ y $ coincidan con inicio/fin de línea. s permite que . coincida con saltos de línea. u activa el modo Unicode completo (necesario para propiedades como \p{Letter}). y es sticky — el match debe empezar exactamente en lastIndex.¿Se envía algo a un servidor?
new RegExp() y String.prototype.replace(). Abre DevTools > Network y confirma: no se hacen peticiones mientras escribes. Seguro para trozos de log, datos internos o cualquier cosa que no pegarías en un sandbox de regex alojado.¿Por qué mi regex va lenta o congela la página?
(a+)+ o (.*)* pueden ejecutar miles de millones de pasos en entradas que casi coinciden. Evita anidar +/*; prefiere alternativas como [^x]+ o ancla tu patrón. El probador limita matches desbocados en 50.000 iteraciones para que la página no se bloquee.¿Cómo uso grupos de captura en modo replace?
$1, $2, etc. Ejemplo: patrón (\w+)@(\w+) con reemplazo $2 / $1 intercambia usuario y dominio en un email. $& es el match completo, $$ imprime un $ literal. Los grupos nombrados (?<nombre>...) se usan como $<nombre>.¿Por qué ^ y $ no coinciden por línea?
^ solo coincide al inicio absoluto de la cadena y $ solo al final absoluto — no en cada línea. Añade la flag m (multilínea) y coincidirán con saltos de línea. Si además necesitas que . case con saltos de línea (por ejemplo, para capturar entre líneas), añade la flag s (dotAll).
EN
PT
ES