oLoveTools
Motor regex aislado

Probador, depurador y explicador de expresiones regulares online

Crea, prueba y depura expresiones regulares con un árbol sintáctico real, posiciones de cada grupo de captura, avisos de backtracking catastrófico y exportación de código a diez lenguajes, todo dentro de tu pestaña.

Cada coincidencia con sus posiciones y sus grupos
El patrón explicado como árbol, no como lista plana
Los patrones desbocados se matan, no congelan la pestaña
Exporta a JavaScript, Python, Go, Rust y seis más
Expresión regular
/
/
VálidaSin coincidenciasAislado
  • Dentro de [ ] el punto ya es literal, así que escaparlo sobra.
Texto de prueba

Pulsa un resaltado para seleccionar esa coincidencia. Mantén Alt para ver el texto en crudo; F3 y Mayús+F3 recorren las coincidencias.

Sigue adelante
Coincidencias

Sin coincidencias

El patrón es válido, simplemente no aparece en este texto. Revisa las flags: sin g solo se informa de la primera coincidencia.

Qué hace este patrón
  • [\w.%+-]+Repite una o más veces — codicioso: coge todo lo que puede y solo devuelve si no le queda más remedio
    • [\w.%+-]Cualquier carácter de: \w . % + -
  • @El carácter «@»
  • [\w.-]+Repite una o más veces — codicioso: coge todo lo que puede y solo devuelve si no le queda más remedio
    • [\w.-]Cualquier carácter de: \w . -
  • \.El carácter «.», tomado literalmente
  • [A-Za-z]{2,}Repite al menos 2 veces — codicioso: coge todo lo que puede y solo devuelve si no le queda más remedio
    • [A-Za-z]Cualquier carácter de: A–Z a–z

Cómo funciona

1

Escribe el patrón

Tecléalo, cógelo de la biblioteca o pega un enlace que te hayan pasado. El patrón se colorea según lo que es cada pieza de verdad, y los fallos se subrayan justo donde están.

2

Ajusta flags y modo

Activa g, i, m, s, u, v, y y d, y elige si estás buscando, sustituyendo o dividiendo. Apaga el modo en vivo si prefieres que no se ejecute nada hasta que pulses el botón.

3

Ejecútalo sin riesgo

La búsqueda ocurre en un Web Worker con un límite de dos segundos. Cada coincidencia vuelve con sus posiciones y sus grupos, y el panel te avisa antes de un patrón que podría no terminar nunca.

4

Llévatelo

Copia la regex, exporta las coincidencias como JSON o CSV, genera el código equivalente para diez lenguajes o manda el resultado directo a otra herramienta de oLoveTools.

Un parser, no un tokenizador

El patrón se analiza en un árbol sintáctico real, así que la explicación muestra qué contiene qué, y acierta con los grupos con nombre. Un tokenizador lee (?<year>\d{4}) como un grupo de captura seguido de un algo opcional; un parser lo lee como el grupo con nombre que es.

El motor corre donde se le puede matar

La búsqueda ocurre en un Web Worker vigilado por un temporizador. Medido aquí, (a+)+$ contra 31 caracteres tarda más de cuatro minutos de CPU pura en el mismo motor que usa tu navegador. En la página eso es una pestaña muerta; en un worker es una ejecución que se termina a los dos segundos.

Coincidencias con posiciones reales

La flag d se activa por debajo, así que cada grupo de captura lleva dónde empieza y dónde acaba, no solo qué atrapó. Eso es lo que permite pintar los grupos dentro de una coincidencia resaltada y saltar de la lista a los caracteres exactos.

Te avisa antes de que te quemes

Cuantificadores anidados sobre caracteres que se solapan, cuantificadores alrededor de algo que puede no consumir nada, retrorreferencias a grupos que no existen, \p{…} sin la flag u y lookbehind en un navegador demasiado viejo: todo señalado antes de ejecutar nada.

Exporta a diez lenguajes

JavaScript, TypeScript, Python, Java, C#, PHP, Go, Rust, Ruby y grep/sed, con las flags traducidas como toca y la sustitución reescrita a la sintaxis propia de cada lenguaje. Los fragmentos de Go y Rust lo dicen cuando el patrón usa algo que RE2 no sabe hacer.

Encadenada con el resto de la suite

Manda el texto sustituido, las partes divididas o las coincidencias en JSON directamente a WordFlow, DiffSnap, JSONFlow, CodeCard o HashBolt, sin pasar por la carpeta de descargas.

probador de regex

Un probador de regex que no puede colgarte el navegador

Las expresiones regulares son lo único que un probador tiene que ejecutar antes de que sean correctas, y una incorrecta puede ser patológica: un patrón como (a+)+$ contra una cadena que casi encaja tarda un tiempo exponencial, y el motor del navegador no tiene forma de interrumpirse. RegexFlow ejecuta cada búsqueda dentro de un Web Worker con un vigilante de dos segundos. Si la ejecución se pasa, el worker se termina y se sustituye, y recibes un mensaje en vez de una pestaña congelada con tu patrón atrapado dentro.

Grupos de captura con nombre y posición
Sustituir y dividir, no solo buscar
Avisos de backtracking antes de ejecutar
Diez lenguajes de destino

Nada sale de la pestaña

El patrón, el texto de prueba, la sustitución y cualquier archivo que abras se procesan enteramente en tu navegador: no hay subida ni viaje de ida y vuelta a un servidor. Los archivos se leen con el propio FileReader del navegador. Lo único que puede salir es un enlace para compartir, y solo cuando pulsas el botón que lo construye.

De un patrón que funciona a código que funciona

Hecho para depurar, no para la demo

Parsear logs que tienen que sobrevivir a una línea malformada, validaciones que tienen que rechazar tanto como aceptar, un buscar y reemplazar en todo un repositorio donde $1 tiene que caer en el sitio correcto, y ese momento en que heredas el patrón de cuarenta caracteres de otra persona y necesitas saber qué hace antes de tocarlo. El árbol de explicación, las posiciones y la tabla de grupos son para ese momento.

El motor es el mismo contra el que vas a publicar

La búsqueda usa el RegExp propio de tu navegador, así que lo que ves es exactamente lo que hará tu JavaScript, incluidas las partes que varían: por eso la herramienta comprueba si hay soporte de lookbehind y de unicodeSets en vez de darlo por hecho. Cuando exportas a Python, Go o Rust, las diferencias se explican en vez de producir en silencio un fragmento que no compila.

Preguntas frecuentes

Q¿Se envía mi patrón o mi texto de prueba a algún sitio?

No. Todo se ejecuta en JavaScript dentro de tu pestaña, incluidos los archivos que abras: se leen con el FileReader del navegador y nunca se suben. Puedes desconectarte de internet y la herramienta sigue funcionando.

Q¿Qué pasa si escribo un patrón que no termina nunca?

Se mata. La búsqueda corre en un Web Worker con un vigilante de dos segundos; si el worker no responde a tiempo se termina y otro nuevo ocupa su lugar. Esto importa más de lo que parece: medido en el mismo motor que usa tu navegador, (a+)+$ contra 31 caracteres estuvo más de cuatro minutos. En el hilo principal eso es una pestaña que no recuperas.

Q¿Qué motor de expresiones regulares usa?

El RegExp nativo de tu navegador, así que lo que pruebas es exactamente lo que hará tu JavaScript. Donde el soporte varía, la herramienta lo comprueba en vez de suponerlo: lookbehind (Safari solo lo añadió en la 16.4), la flag v de unicodeSets y la flag d para las posiciones de los grupos. Si falta alguna, te lo dice en vez de mostrarte un error confuso.

Q¿Por qué la explicación del patrón es un árbol?

Porque una lista plana no puede decirte qué está dentro de qué, y porque un tokenizador se equivoca donde un parser no: (?<year>\d{4}) es un grupo con nombre, no un grupo de captura seguido de un carácter opcional. Cada línea está enlazada a los caracteres exactos que describe, así que al pasar el ratón por una se resaltan en el patrón.

Q¿La sustitución admite $1 y los grupos con nombre?

Sí: de $1 a $99, $<nombre>, $& para la coincidencia entera, $` y $' para el texto de alrededor, y $$ para un dólar literal. Cada token que escribes aparece listado debajo con en qué se va a convertir, y el código generado los reescribe a la sintaxis propia de cada destino: \g<nombre> para Python, ${nombre} para Java y C#.

Q¿Puedo usarlo con un archivo grande?

Sí, pero pasados los 40.000 caracteres la herramienta deja de reevaluar sola y espera a que pulses Ejecutar: buscar en un archivo grande en cada pulsación de tecla es trabajo tirado. También puedes apagar el modo en vivo con cualquier tamaño y quedarte en manual del todo.

Q¿Por qué el código de Go viene con un aviso?

Go y Rust usan RE2, que es de tiempo lineal por diseño y por tanto no tiene lookahead, ni lookbehind, ni retrorreferencias. Si tu patrón usa alguno, el fragmento se muestra igual pero con una nota diciendo que no compilará tal cual, que es más útil que un fragmento que falla en silencio.

Q¿Qué significan los colores del texto de prueba?

Cada coincidencia va perfilada en fucsia y la seleccionada más brillante. Dentro de la seleccionada, los grupos de captura tienen su propio tramo violeta, así que ves exactamente qué caracteres acabaron en $1. Mantén Alt para ocultar todos los resaltados y leer el texto tal cual es.

Búsquedas relacionadas

probador de regexprobar expresiones regularesdepurador de regexexplicar expresión regularconstructor de regex onlinereemplazar con regexbacktracking catastróficoregex a pythonprobador regex javascriptgrupos de captura con nombre
Parte de la suite oLoveTools
oLoveTools

Un banco de trabajo para expresiones regulares gratuito, privado y local.

© 2026 oLoveToolsNosotros

RegexFlow | Probador y depurador de expresiones regulares gratis

Probador de regex gratuito con resaltado en vivo, posiciones de los grupos de captura, explicación en árbol, avisos de backtracking y exportación a Python, Go, Java y más. 100% en tu navegador.

Preguntas frecuentes

¿Se envía mi patrón o mi texto de prueba a algún sitio?

No. Todo se ejecuta en JavaScript dentro de tu pestaña, incluidos los archivos que abras: se leen con el FileReader del navegador y nunca se suben. Puedes desconectarte de internet y la herramienta sigue funcionando.

¿Qué pasa si escribo un patrón que no termina nunca?

Se mata. La búsqueda corre en un Web Worker con un vigilante de dos segundos; si el worker no responde a tiempo se termina y otro nuevo ocupa su lugar. Esto importa más de lo que parece: medido en el mismo motor que usa tu navegador, (a+)+$ contra 31 caracteres estuvo más de cuatro minutos. En el hilo principal eso es una pestaña que no recuperas.

¿Qué motor de expresiones regulares usa?

El RegExp nativo de tu navegador, así que lo que pruebas es exactamente lo que hará tu JavaScript. Donde el soporte varía, la herramienta lo comprueba en vez de suponerlo: lookbehind (Safari solo lo añadió en la 16.4), la flag v de unicodeSets y la flag d para las posiciones de los grupos. Si falta alguna, te lo dice en vez de mostrarte un error confuso.

¿Por qué la explicación del patrón es un árbol?

Porque una lista plana no puede decirte qué está dentro de qué, y porque un tokenizador se equivoca donde un parser no: (?<year>\d{4}) es un grupo con nombre, no un grupo de captura seguido de un carácter opcional. Cada línea está enlazada a los caracteres exactos que describe, así que al pasar el ratón por una se resaltan en el patrón.

¿La sustitución admite $1 y los grupos con nombre?

Sí: de $1 a $99, $<nombre>, $& para la coincidencia entera, $` y $' para el texto de alrededor, y $$ para un dólar literal. Cada token que escribes aparece listado debajo con en qué se va a convertir, y el código generado los reescribe a la sintaxis propia de cada destino: \g<nombre> para Python, ${nombre} para Java y C#.

¿Puedo usarlo con un archivo grande?

Sí, pero pasados los 40.000 caracteres la herramienta deja de reevaluar sola y espera a que pulses Ejecutar: buscar en un archivo grande en cada pulsación de tecla es trabajo tirado. También puedes apagar el modo en vivo con cualquier tamaño y quedarte en manual del todo.

¿Por qué el código de Go viene con un aviso?

Go y Rust usan RE2, que es de tiempo lineal por diseño y por tanto no tiene lookahead, ni lookbehind, ni retrorreferencias. Si tu patrón usa alguno, el fragmento se muestra igual pero con una nota diciendo que no compilará tal cual, que es más útil que un fragmento que falla en silencio.

¿Qué significan los colores del texto de prueba?

Cada coincidencia va perfilada en fucsia y la seleccionada más brillante. Dentro de la seleccionada, los grupos de captura tienen su propio tramo violeta, así que ves exactamente qué caracteres acabaron en $1. Mantén Alt para ocultar todos los resaltados y leer el texto tal cual es.

Búsquedas relacionadas

probador de regex, probar expresiones regulares, depurador de regex, explicar expresión regular, constructor de regex online, reemplazar con regex, backtracking catastrófico, regex a python, probador regex javascript, grupos de captura con nombre