tigtools

Comprobador de expresiones regulares

Introduce un patrón y un texto para ver todas las coincidencias resaltadas, con su posición y sus grupos de captura. Usa el motor de regex de JavaScript de tu navegador.

Se ejecuta en tu navegador Sin registro

Marcas

Usa $1, $2… para grupos numerados, $<name> para grupos con nombre, $& para toda la coincidencia y $$ para el signo de dólar.

Cómo usarla

  1. Escribe una expresión regular en el campo Patrón, sin las barras que la delimitan.
  2. Selecciona las marcas que necesites. g (global) encuentra todas las coincidencias en lugar de solo la primera.
  3. Pega el texto que quieres buscar. Las coincidencias se resaltan y se muestran con su índice y sus grupos de captura.
  4. Si quieres, introduce un reemplazo como $2-$1 para previsualizar el resultado de String.replace.

Cómo funciona

El comprobador ejecuta tu patrón con el objeto RegExp integrado en el navegador, por lo que los resultados son exactamente los que produciría el código JavaScript (ECMAScript) en ese navegador. Otros lenguajes usan variantes distintas de regex: PCRE (PHP), el módulo re de Python, Java y .NET admiten funciones que JavaScript no tiene, como los cuantificadores posesivos (a++), los grupos atómicos ((?>…)), los modificadores en línea como (?i) y la recursividad. También presentan diferencias en detalles como los anclajes \A y \Z. Prueba el patrón en el lenguaje correspondiente antes de confiar en él. Las búsquedas hacia atrás ((?<=…)), los grupos con nombre ((?<name>…)) y las secuencias de escape para propiedades Unicode (\p{L} con la marca u) funcionan en todos los navegadores actuales.

Sin la marca g o y solo se encuentra la primera coincidencia, igual que con RegExp.exec. Las coincidencias de longitud cero, por ejemplo las de ^ o \b, se muestran en la lista, pero no se resaltan; después de una, la búsqueda avanza un carácter (un punto de código con la marca u), como hace String.matchAll. Los grupos de captura se muestran por número y, si tienen nombre, también por nombre. Si un grupo no participa en la coincidencia, se indica que no tiene valor; esto es distinto de una coincidencia vacía.

Algunos patrones, como (a+)+$ en una línea larga sin coincidencias, tardan un tiempo exponencial en fallar (retroceso catastrófico). Para reducir el riesgo, la búsqueda comienza un instante después de que dejes de escribir, solo se buscan los primeros 100.000 caracteres del texto y se recopilan como máximo 1.000 coincidencias. Aun así, un patrón problemático puede dejar la pestaña sin responder durante un tiempo; si ocurre, simplifica el patrón o acorta el texto.

Ejemplos

Extraer fechas

El patrón (\d{4})-(\d{2})-(\d{2}) con la marca g activada encuentra dos coincidencias en «Vence el 2026-03-15, pagado el 2026-04-02». El grupo 1 es el año; el reemplazo $3.$2.$1 transforma el texto en «Vence el 15.03.2026, pagado el 02.04.2026».

Grupos con nombre para un código más claro

(?<key>\w+)=(?<value>[^&]*) en la cadena de consulta a=1&b=two muestra key y value para cada par, igual que match.groups.key y match.groups.value en JavaScript.

Búsqueda sin distinguir mayúsculas y minúsculas en varias líneas

^error:.* con las marcas g, i y m encuentra todas las líneas de un registro que empiezan por Error:, ERROR: o error:, porque m hace que ^ coincida al inicio de cada línea.

Preguntas frecuentes

¿Mi regex funcionará igual en Python, PHP o Java?

No necesariamente. Esta herramienta usa el motor de JavaScript. La sintaxis básica es compartida, pero algunas funciones, como los cuantificadores posesivos, los grupos atómicos, las marcas en línea como (?i) y ciertas secuencias de escape, solo existen en otras variantes; además, algunas se comportan de forma distinta. Pruébalo siempre en el lenguaje de destino.

¿Por qué solo se encuentra una coincidencia?

La marca g (global) está desactivada. Sin ella, JavaScript solo devuelve la primera coincidencia. Activa g para encontrarlas todas.

¿Debo escribir las barras alrededor del patrón?

No. Introduce solo el patrón, por ejemplo, \d+ en lugar de /\d+/g, y selecciona las marcas con las casillas. Debajo de los resultados se muestra el formato literal de JavaScript para que puedas copiarlo en el código.

¿Por qué la página se volvió lenta con mi patrón?

Los cuantificadores anidados, como (a+)+ o (.*)*, pueden hacer que el motor pruebe un número exponencial de rutas cuando no hay coincidencias. Haz que el patrón sea más específico, por ejemplo, sustituyendo .* por [^,]*, o usa anclajes. El comprobador limita el texto a 100.000 caracteres para reducir el impacto.

Privacidad

Tu patrón y tu texto se procesan únicamente en tu navegador, con su motor de JavaScript. No se suben ni se almacenan, y tampoco se incluyen en las analíticas.