Probador de regex

Prueba expresiones regulares de JavaScript en vivo: resalta cada coincidencia, muestra los grupos de captura y con nombre, cambia los flags y previsualiza el reemplazo en tu navegador.

/ /g
Flags

Coincidencias

No hay coincidencias

# Posición Coincidencia Grupos

Reemplazar

¿Qué es una expresión regular?

Una expresión regular (regex) es un patrón que describe texto, como «cuatro dígitos, un guion y dos dígitos». Se usa para validar datos, buscar en logs, extraer valores y reemplazar texto en bloque. Este probador usa el motor JavaScript de tu navegador, así que los resultados coinciden con lo que devuelven String.prototype.match y replace en navegadores y Node.js.

Cómo usarlo

  1. Escribe el patrón sin las barras de alrededor y marca los flags que necesites.
  2. Pega el texto de prueba. Cada coincidencia se resalta, con colores alternos para distinguir las que están juntas.
  3. La tabla muestra la posición y los grupos de cada coincidencia. Haz clic en una fila para seleccionarla en el texto.
  4. Rellena «Reemplazar por» para ver el resultado. Usa $1 o $<name> para los grupos y $& para la coincidencia completa.

Ejemplo: cambiar el formato de fechas

El patrón (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) encuentra fechas como 2024-03-15 y pone nombre a sus tres partes. Al reemplazar por $<day>/$<month>/$<year> se obtiene:

15/03/2024

Referencia rápida

SintaxisSignificado
\dUn dígito 0-9
\wUna letra, un dígito o un guion bajo
\sEspacio en blanco: espacio, tabulador, salto de línea
.Cualquier carácter salvo el salto de línea (con s: cualquiera)
* + ?0 o más, 1 o más, 0 o 1
{2,4}Entre 2 y 4 veces
^ $Inicio y fin del texto (con m: de cada línea)
\bLímite de palabra
[abc] [^abc]Uno de a, b, c / cualquiera excepto ellos
a|ba o b
(...)Grupo de captura: $1, $2 en el reemplazo
(?:...)Grupo sin captura
(?<name>...)Grupo con nombre: $<name> en el reemplazo
(?=...) (?!...)Seguido de / no seguido de (lookahead)

Preguntas frecuentes

¿Qué tipo de expresiones regulares usa?

Las de JavaScript (ECMAScript), igual que los navegadores y Node.js. La mayor parte de la sintaxis también sirve en Java, Python, PHP y Go, pero hay diferencias: Python escribe los grupos con nombre como (?P<name>...), y aquí no se admiten flags en línea como (?i) al principio del patrón; usa las casillas de flags.

¿Por qué se detuvo con un tiempo de espera?

Algunos patrones, sobre todo con cuantificadores anidados como (a+)+$, obligan al motor a probar una cantidad enorme de combinaciones («backtracking catastrófico»). El probador se ejecuta en segundo plano y se detiene a los 2 segundos para que la página siga respondiendo. Reescribe el patrón para evitar repeticiones anidadas: el mismo patrón también podría bloquear tu servidor.

¿Hay que escribir dos barras invertidas?

Aquí no: escribe \d directamente. Cuando copies el patrón dentro de una cadena en código Java, C# o JavaScript (no en un literal /.../), cada barra invertida debe escribirse dos veces, como en "\\d{4}".

¿Mi texto se envía a un servidor?

No. La búsqueda y el reemplazo ocurren por completo en tu navegador, así que puedes probar patrones con logs o datos que no deben salir de tu equipo.