Saltar al contenido

Prueba expresiones regulares

Prueba una expresión regular de JavaScript con tu texto: coincidencias resaltadas al instante, grupos de captura y una explicación en lenguaje sencillo, directamente en tu navegador.

Variante de regex de JavaScript (ECMAScript)El mismo motor que tu navegador, Node.js y Deno
//g

$1 o $<name> insertan un grupo, $& la coincidencia completa, $` y $' el texto anterior y posterior, $$ un signo de dólar.

Aquí aparecen las coincidencias y los grupos de captura.

Se ejecuta en tu navegador · sin subir archivosCómo funciona

Cómo usar Probador de regex

  1. 1

    Escribe un patrón

    Escribe la expresión regular sin barras; los indicadores se activan en los interruptores que hay debajo.

  2. 2

    Añade un texto de prueba

    Pega el texto en el que buscar; las coincidencias se resaltan y se listan con sus grupos de captura mientras escribes.

  3. 3

    Consulta la explicación

    Abre Explicación para leer cada elemento en lenguaje sencillo y ver qué hace realmente el patrón.

  4. 4

    Previsualiza un reemplazo

    Escribe un reemplazo con $1 o $<name> para ver el resultado y copia después el código desde la pestaña Código.

Límites y Pro

Gratis y sin registro: hasta 100 000 coincidencias contadas, 2000 resaltadas y 200 listadas en la tabla; el resaltado cubre textos de prueba de hasta 200 000 caracteres y cada ejecución se detiene a los 1,5 segundos.

Pro quita los anuncios; el probador funciona igual en todos los planes. Ver Pro

Acerca de Probador de regex

Este probador ejecuta tu patrón con el motor de expresiones regulares de JavaScript (ECMAScript) integrado en el navegador, el mismo que usan Node.js, Deno, Bun y todas las páginas web, de modo que lo que coincide aquí coincide en tu código. Escribe un patrón y un texto de prueba y cada coincidencia se resalta mientras escribes, con una tabla de posiciones, grupos de captura numerados y con nombre, y el inicio y el fin de cada grupo cuando el indicador d está activado.

Puedes activar o desactivar los ocho indicadores: g para todas las coincidencias, i para ignorar mayúsculas y minúsculas, m para que ^ y $ funcionen por línea, s para que el punto también coincida con saltos de línea, u para Unicode completo y escapes de propiedades \p{…}, v para conjuntos Unicode con intersección y resta dentro de los corchetes, y para búsqueda adhesiva y d para los índices. El campo de reemplazo muestra una vista previa de String.prototype.replace con $1, $<name>, $& y los demás símbolos de sustitución, y la pestaña Código ofrece el literal correspondiente y fragmentos con matchAll y RegExp().

La pestaña Explicación divide el patrón en elementos y dice en lenguaje sencillo qué hace cada uno: grupos, anticipaciones y retrospectivas, clases de caracteres, cuantificadores y si son voraces o perezosos. Además, la guía rápida inserta los elementos más habituales en la posición del cursor.

La búsqueda se ejecuta en un Web Worker en segundo plano con un límite de 1,5 segundos. Un patrón con retroceso catastrófico, como (a+)+b sobre una larga serie de aes, se detiene con una explicación en lugar de bloquear la pestaña. Los patrones escritos para PCRE, Python o .NET pueden necesitar cambios: los cuantificadores posesivos, los grupos atómicos, la recursión, \A y \Z no existen en JavaScript.

Privacidad

Los patrones y los textos de prueba permanecen en esta pestaña del navegador: la búsqueda se hace en un Web Worker local y nada de lo que escribes se sube, registra ni almacena, así que puedes probar con líneas de registro o datos de clientes reales sin riesgo.

Características

El motor real de JS

Coincide exactamente igual que RegExp en los navegadores y en Node.js, con conjuntos del indicador v y grupos con nombre.

Explicación elemento por elemento

Cada grupo, clase, ancla y cuantificador descrito en lenguaje sencillo.

Protección contra el retroceso

La búsqueda se ejecuta en un worker con un límite de 1,5 segundos, así que un patrón defectuoso no puede bloquear la página.

Probador de regex: preguntas frecuentes

¿Qué variante de regex usa este probador?
La de JavaScript, tal como la define el estándar ECMAScript y la implementa tu navegador. Admite retrospectivas, grupos con nombre, escapes de propiedades Unicode y el indicador v, pero no funciones de PCRE como los cuantificadores posesivos, los grupos atómicos, la recursión o los condicionales. La sintaxis (?P<name>…) de Python debe escribirse aquí (?<name>…). Los resultados coinciden con Node.js y Deno con la misma versión del motor.
¿Por qué mi patrón solo encuentra la primera coincidencia?
Sin el indicador g, JavaScript se detiene tras la primera coincidencia: exec y match devuelven un solo resultado y replace cambia solo la primera aparición. Activa g para encontrar y reemplazar todas las coincidencias. El indicador adhesivo y es distinto: solo coincide en la posición exacta donde terminó la coincidencia anterior, algo útil para los analizadores léxicos.
¿Qué es el retroceso catastrófico?
Cuando un patrón puede coincidir con el mismo texto de muchas formas distintas, como con cuantificadores anidados del tipo (a+)+ o (.*)*, una coincidencia fallida obliga al motor a probar todas las combinaciones, lo que crece de forma exponencial con la longitud del texto. Aquí se detiene a los 1,5 segundos con un aviso. Se arregla haciendo que las alternativas sean excluyentes, por ejemplo [^,]* en lugar de .* antes de una coma.
¿Cómo uso los grupos de captura en el reemplazo?
Escribe $1, $2 y así sucesivamente para los grupos numerados, o $<name> para un grupo con nombre como (?<year>\d{4}). $& inserta la coincidencia completa, $` el texto anterior y $' el posterior, y $$ produce un signo de dólar literal. Prueba un ejemplo carga un patrón de fecha que reordena año, mes y día de esta manera.
¿Cuándo necesito el indicador u o v?
Usa u cuando tu texto contenga emojis u otros caracteres fuera del plano multilingüe básico, para que el punto y los cuantificadores los traten como un solo carácter, y para emplear propiedades Unicode como \p{L}. El indicador v, más reciente, incluye todo lo de u y añade operaciones de conjuntos dentro de los corchetes, como [\p{L}--[a-z]] para letras no ASCII. Los dos indicadores no se pueden combinar.