Probador de expresiones regulares

Escriba un patrón y un texto de prueba. Cada coincidencia se resalta al escribir, y la lista muestra dónde está cada una y qué captaron sus grupos. Lo que escribe no sale de su navegador.

Gratuita Funciona en su navegador Revisada: martes, 10 de noviembre de 2026

Esta herramienta funciona en su navegador. Lo que escribe no se envía a nosotros.

Cómo se usa

  1. Escriba el patrón sin las barras. El ejemplo encuentra fechas escritas como 2026-11-10.
  2. Marque los indicadores que necesite. g busca todas las coincidencias, i ignora mayúsculas y minúsculas, y m y s cambian la forma de leer los saltos de línea.
  3. Pegue su texto de prueba. Las coincidencias se resaltan al momento, y la lista debajo del texto indica la posición y los grupos de cada una.
  4. Escriba un texto en Sustituir por para ver el resultado, y pulse Copiar para llevárselo.

Cómo funciona aquí la búsqueda

La página usa el motor de expresiones regulares que trae su navegador, el mismo que usa JavaScript. Las coincidencias se buscan en orden, desde el principio del texto. La posición mostrada es el número de caracteres anteriores a la coincidencia, empezando en 0, contados en unidades UTF-16 como los cuenta JavaScript.

La búsqueda se ejecuta en un proceso en segundo plano de su navegador, así que la página sigue respondiendo. Una búsqueda se detiene tras 10.000 coincidencias, y un texto de más de 200.000 caracteres no se busca. Un patrón que puede no coincidir con nada, como x*, avanza un carácter tras cada coincidencia vacía, así que la búsqueda siempre termina. Una búsqueda que tarda más de 2 segundos se detiene; véase la sección sobre el retroceso catastrófico.

  • Sin el indicador g, solo se muestra la primera coincidencia, como hace String.match().
  • El indicador u lee un emoji u otro carácter fuera del plano básico como un solo carácter.
  • El indicador d añade a la lista el inicio y el final de cada grupo.

Retroceso catastrófico y el límite de 2 segundos

Un motor de expresiones regulares prueba una a una las formas en que un patrón podría coincidir. Con algunos patrones, en especial un grupo repetido dentro de otro grupo repetido, como (a+)+, el número de formas crece muy deprisa: cada carácter adicional puede duplicar el trabajo. Esto pasa especialmente cuando el texto casi coincide y falla solo al final.

Por ejemplo, el patrón (a+)+$ sobre un texto de muchas letras a seguidas de un signo de exclamación no puede coincidir, porque $ exige el final del texto. El motor prueba aun así cada forma de partir las letras antes de rendirse. Con unas 26 letras, la búsqueda puede tardar ya un segundo o más en un ordenador normal, y cada letra más la hace mucho más lenta. El tiempo depende de su equipo.

Esta página ejecuta cada búsqueda en un proceso en segundo plano y la detiene a los 2 segundos, mostrando un mensaje. El resto de la página sigue funcionando, así que puede cambiar el patrón o el texto y probar de nuevo.

  • No ponga una repetición dentro de otra sobre los mismos caracteres: escriba (a+)$ en lugar de (a+)+$. Sobre el mismo texto, el patrón seguro termina al momento.
  • Sea preciso: use [a-z] o \d+ dentro de un grupo en vez de un punto, para que las partes de una coincidencia no puedan solaparse de muchas formas.
  • Pruebe primero el patrón con una muestra corta del texto, y después con el texto completo.
  • Ancle el patrón donde pueda: ^ al principio y $ al final impiden que el motor pruebe todas las posiciones de inicio.

Patrones de sustitución

El texto de sustitución sigue las reglas de String.replace() de JavaScript. Un signo de dólar inicia un código que se sustituye por el texto coincidente:

Lo que escribe Se sustituye por
$1, $2 y así sucesivamente El texto del grupo numerado
$& Toda la coincidencia
$` El texto antes de la coincidencia
$' El texto después de la coincidencia
$$ Un solo signo de dólar
Un signo de dólar, un signo menor que, el nombre del grupo y un signo mayor que El texto del grupo con nombre

Diferencias con PCRE y .NET

Un patrón escrito para PCRE (PHP, muchas herramientas de Linux) o para .NET (C#, Visual Basic) suele funcionar aquí, pero algunas funciones existen solo en uno de los motores. La tabla recoge las más importantes.

Función JavaScript (esta página) PCRE y .NET
Grupos atómicos y cuantificadores posesivos No disponibles Grupos atómicos en PCRE y .NET; cuantificadores posesivos como a++ en PCRE
Los anclajes \A, \Z y \z No disponibles: use ^ y $ Disponibles
Un grupo con nombre escrito como (?P<…>) No disponible Disponible en PCRE
Una opción en línea, como (?i) dentro del patrón No disponible: indique el indicador Disponible en .NET
Dejar texto fuera de la coincidencia con \K No disponible Disponible en PCRE
Sustituir un grupo con nombre Signo de dólar, menor que, nombre y mayor que .NET usa signo de dólar, llave, nombre y llave

Ejemplo resuelto: tres fechas en un texto

El patrón de muestra tiene tres grupos con nombre: cuatro dígitos para el año, dos para el mes y dos para el día, separados por guiones. El texto tiene tres fechas, y coinciden en las posiciones 14, 34 y 50, contando desde 0 en la primera letra.

Con la sustitución que escribe el día, el mes y el año con los nombres de los grupos entre un signo de dólar, un signo menor que, el nombre y un signo mayor que, las tres fechas se reescriben como 10.11.2026, 03.12.2026 y 15.01.2027. El resultado dice: Invoice dated 10.11.2026, paid on 03.12.2026. Due 15.01.2027.

Preguntas frecuentes

¿Qué variante de expresiones regulares usa este probador?

Usa el motor de JavaScript que trae su navegador. La mayoría de los patrones para buscar, validar y limpiar texto funcionan igual en JavaScript, PCRE y .NET, pero algunas funciones difieren, como indica la sección de diferencias.

¿Por qué la lista se detiene en 10.000 coincidencias?

Las coincidencias se recogen en orden. Una lista muy larga tardaría en dibujarse y sería demasiado larga para leerla, así que, cuando un patrón coincide más veces, se muestran las primeras 10.000 y la página indica que la búsqueda se detuvo.

¿Por qué se rechaza mi texto si tiene más de 200.000 caracteres?

Un texto muy largo hace lenta la página, y un patrón puede tardar mucho en él. Pruebe primero el patrón con una parte del texto y después con el resto, o divida el texto en partes más pequeñas.

¿Por qué el resaltado omite algunas coincidencias?

Una coincidencia sin caracteres, como el lugar vacío que x* encuentra entre letras, no tiene nada que resaltar. Sigue en la lista con su posición, así que aún puede ver dónde está.

¿Envía el probador mi texto a un servidor?

No. La comparación se ejecuta en su navegador, y la página no guarda lo que escribe ni lo envía a ningún sitio. Al cerrar la página, se borra.

¿Qué significa el mensaje sobre un patrón no válido?

El patrón no puede leerse como expresión regular de JavaScript. El mensaje lo da el motor en inglés y nombra el problema, por ejemplo un corchete que nunca se cierra.

¿Puedo probar aquí un patrón escrito para PCRE o .NET?

A menudo sí, cuando usa solo funciones comunes. Si tiene un grupo atómico, un cuantificador posesivo, \A o \z, o una opción en línea, reescriba esa parte para JavaScript primero; la tabla indica cuáles son esas funciones.

¿Por qué la página dice que el patrón tardó demasiado?

La búsqueda no terminó en 2 segundos sobre este texto, así que la página la detuvo. Suele significar un patrón con una repetición dentro de otra, como (a+)+, sobre un texto que casi coincide. La sección sobre el retroceso catastrófico muestra una forma más segura.

Fuentes

Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.

Usamos cookies necesarias para que el sitio funcione. Si usted lo acepta, Google también usa cookies publicitarias para mostrar anuncios personalizados. Si las rechaza, seguirá viendo anuncios, pero no estarán personalizados.