Probador de regex

Se ejecuta en tu navegador; no se sube nada

Prueba expresiones regulares de JavaScript con tu texto, con grupos de captura y reemplazo.

Test text

Type a pattern

Matches are listed here with their position and capture groups. Patterns use JavaScript's RegExp, as in browsers and Node.js; type them without the surrounding slashes.
Type a pattern
/gLn 1, Col 1

¿Qué es una expresión regular?

Una expresión regular, o regex, es un patrón que describe un conjunto de cadenas. \d{3} significa tres dígitos, [a-z]+ una o más letras minúsculas, y ^ y $ anclan la coincidencia al principio y al final. Los programas usan patrones para buscar, extraer, validar y reemplazar texto.

Las partes de un patrón entre paréntesis son grupos de captura. En (\d{4})-(\d{2}) aplicado a 2025-07, el grupo 1 es 2025 y el grupo 2 es 07. Los grupos con nombre, como (?<year>\d{4}), permiten referirse a una parte por su nombre. Los flags cambian el comportamiento de todo el patrón: i ignora mayúsculas y minúsculas, y g encuentra todas las coincidencias en lugar de solo la primera.

Este probador usa el RegExp de JavaScript, el motor de los navegadores y de Node.js, así que un patrón que funciona aquí funciona igual en JavaScript y TypeScript. Otros lenguajes comparten casi toda la sintaxis, pero no toda; las preguntas de abajo recogen las diferencias más habituales.

Cómo usar esta herramienta

  1. 1Escribe un patrón en la caja entre las barras, sin las barras. Presets carga un patrón con un texto de ejemplo.
  2. 2Activa y desactiva flags en la barra de herramientas: g global, i ignorar mayúsculas, m multilínea, s dotAll, u y v modos Unicode, y sticky y d índices de grupo. Pasa el ratón por un flag para ver qué hace.
  3. 3Pega el texto en el que buscar en Test text, o arrastra un archivo encima. Las coincidencias se resaltan mientras escribes y se listan en Matches con su línea, su columna y sus grupos de captura.
  4. 4Haz clic en una coincidencia, o pulsa Enter en la caja del patrón (F7 en otro sitio), para seleccionarla en el texto y ver sus grupos resaltados. Shift+Enter o Shift+F7 vuelve atrás.
  5. 5Abre Replace para probar un reemplazo como $2/$1 o $<year> y ver el resultado. Apply to test text lo escribe en el texto; Ctrl+Z lo deshace.

Solución de problemas

Detenido tras 2 segundos
El patrón hace backtracking catastrófico con este texto: cuantificadores anidados como (a+)+ o (.*,)* prueban un número exponencial de formas de coincidir antes de fallar. Haz que cada parte repetida solo pueda coincidir de una forma, por ejemplo [^,]* en lugar de .*. El mismo patrón puede congelar un servidor, por eso aquí se detiene.
El patrón funciona en el código pero no aquí, o al revés
En un literal de cadena en el código, cada barra invertida se escribe dos veces ("\\d+"). Aquí escribes el patrón tal cual, con barras simples (\d+), como entre las barras de /\d+/.
Solo se encuentra una coincidencia
El flag g está desactivado. Sin él, la búsqueda se detiene tras la primera coincidencia y Replace cambia solo la primera.
^ o $ coinciden solo una vez
Sin el flag m, solo coinciden al principio y al final de todo el texto. Activa m para que coincidan en cada línea.
Escape o grupo no válido con el flag u
El modo Unicode es más estricto: los escapes que no significan nada, como \- fuera de una clase de caracteres, pasan a ser errores. Quita la barra invertida o desactiva u.

Preguntas frecuentes

¿En qué se diferencia el regex de JavaScript de PCRE, Python o Java?

JavaScript no tiene cuantificadores posesivos (a++) ni grupos atómicos ((?>…)), ni \A y \Z (usa ^ y $ sin el flag m), ni (?i) al principio del patrón: activa los flags con los interruptores. Python escribe los grupos con nombre como (?P<name>…) donde JavaScript escribe (?<name>…). Los navegadores actuales admiten lookbehind, grupos con nombre y escapes de propiedades Unicode como \p{L} (con u o v).

¿Qué diferencia hay entre los flags m y s?

m (multilínea) hace que ^ y $ coincidan al principio y al final de cada línea. s (dotAll) hace que . también coincida con los saltos de línea; sin él, . coincide con cualquier carácter excepto un salto de línea.

¿El preajuste de email es un validador de emails completo?

No. Encuentra la forma habitual name@domain.tld dentro de un texto, que es lo que normalmente quieres al buscar en logs o respuestas. El estándar completo de direcciones permite mucho más. Para validar una dirección, comprueba la forma básica y después envía un email de confirmación.

¿Se envía mi texto a un servidor?

No. La búsqueda se ejecuta en tu navegador, en un worker en segundo plano de esta página, y no se sube nada. Para que sobrevivan a una recarga, el patrón y el texto se guardan en el almacenamiento de sesión de esta pestaña hasta que los borras o cierras la pestaña. Copy link pone la entrada en el enlace después de #, una parte que los navegadores nunca envían a un servidor, pero cualquiera a quien le des el enlace podrá leerla.