Texto

Probador de regex

Escribe una expresión regular, activa los flags que necesites y ve exactamente dónde encaja en tu texto. Las posiciones de coincidencia, los grupos de captura, la vista previa de reemplazo, el resultado de la división y los posibles riesgos de rendimiento se actualizan a la vez, con todo procesado localmente en tu navegador.

  • La comprobación de sintaxis en tiempo real señala la columna exacta en cuanto un patrón falla
  • Activa los siete flags de JavaScript g, i, m, s, u, y y d para reflejar cómo se ejecutará el motor
  • Las coincidencias resaltadas, los grupos capturados, la vista previa de reemplazo y la división se mantienen sincronizados
  • Las plantillas de patrones integradas y la detección asíncrona de ReDoS ayudan a evitar regresiones silenciosas
  • El patrón, los flags y el texto de prueba viajan en un enlace compartible, para que las revisiones y el trabajo en pareja fluyan sin fricción
tools/Probador de expresiones regulares
/
/g
Plantillas
En espera: añade un patrón y algo de texto

Todavía no hay coincidencias. Prueba a ajustar el patrón o los flags.

Acciones de regex
Flags

Resumen

Esto no es un simple ejecutor de test() de una sola vez. La edición del patrón, la localización de coincidencias, la vista previa del reemplazo, el resultado de la división y el riesgo de rendimiento conviven en paralelo, para que la regla quede bien a la primera.

  1. 01

    Comprobación de sintaxis en tiempo real

    Los patrones se analizan con regexpp, de modo que los errores de sintaxis aparecen al instante con la columna problemática, en lugar de convertirse en silencio en coincidencias vacías.

  2. 02

    Todos los flags disponibles

    Los siete flags de JavaScript —g, i, m, s, u, y y d— se muestran con nombre y una pista breve, en vez de letras sueltas que hay que recordar.

  3. 03

    Coincidencias resaltadas y detalles

    Cada coincidencia se resalta en el texto de prueba y se lista en orden con índice, longitud, grupos capturados y capturas con nombre.

  4. 04

    Vista previa de reemplazo y división

    Ejecuta la misma regla como reemplazo o como división, para dar forma a registros, URL y campos de configuración en un solo lugar.

  5. 05

    Avisos de riesgo de rendimiento

    El patrón se analiza de forma asíncrona con recheck. Cuando se detecta un riesgo de retroceso catastrófico, se muestra una entrada de ataque de ejemplo.

  6. 06

    Exportación de código multilenguaje

    Genera código de regex listo para pegar en JavaScript, TypeScript, Python, Go, PHP y Java, con el escape adecuado para cada destino.

  7. 07

    Enlaces compartibles

    El patrón, los flags, el reemplazo y el texto de prueba se comprimen en el hash de la URL, de modo que otras personas pueden reabrir el mismo espacio de trabajo.

  8. 08

    Procesamiento totalmente local

    El análisis, la coincidencia, el reemplazo y la detección de ReDoS se ejecutan en la sesión actual del navegador: no se envía nada a un servidor.

Cómo usarla

Escribe un patrón, observa dónde encaja, ajusta los flags y luego copia el literal, el fragmento o el enlace para compartir.

  1. 01

    Escribe tu regex en el campo del patrón. Los problemas de sintaxis aparecen de inmediato con la referencia de columna.

  2. 02

    Activa los flags que necesites. g, i y m son las combinaciones más habituales.

  3. 03

    Pega el texto que quieras probar. Las coincidencias se resaltan a medida que escribes.

  4. 04

    Revisa la lista de coincidencias de la derecha para confirmar la posición, la longitud y los grupos de captura.

  5. 05

    Cambia a la pestaña Reemplazar cuando necesites reescribir el texto con $1, $<name> o $&.

  6. 06

    Vigila el aviso de rendimiento en la esquina; si aparece un riesgo de ReDoS, reescribe los cuantificadores.

  7. 07

    Termina con Copiar literal, Exportar código o Copiar enlace para compartir y llevarte el resultado.

Detalles

Cada tarea se fija en señales distintas: el número de coincidencias, los grupos de captura, el rendimiento y el código listo para usar están visibles a la vez.

  • El flag g recorre todo el texto y es el punto de partida habitual para contar todas las coincidencias.
  • El flag i es la opción correcta para palabras clave, nombres de marca y filtros de registro sin distinguir mayúsculas.
  • El flag m ancla ^ y $ a cada línea, ideal para archivos de registro, títulos de Markdown y datos por líneas.
  • El flag s deja que . cruce los saltos de línea, útil para HTML de varias líneas o bloques de comentarios.
  • El flag u activa el modo Unicode para que emoji, texto CJK y escapes \u{...} se comporten de forma predecible.
  • El flag y coincide desde lastIndex y es útil para analizadores léxicos escritos a mano o el escaneo por bloques.
  • El flag d devuelve los índices de los grupos de captura, lo que simplifica mucho el resaltado preciso.
  • Los detalles de la coincidencia se listan en orden con posición inicial y longitud, de modo que los grupos de captura son fáciles de verificar.
  • El panel de reemplazo entiende $1, $<name>, $& y $$ para reconstruir el contenido con flexibilidad.
  • El resultado de la división se muestra como un array JSON, perfecto para depurar la lógica de delimitadores.
  • La detección de ReDoS se ejecuta de forma asíncrona e imprime un reproductor cuando encuentra un patrón arriesgado.
  • El código exportado escapa el patrón correctamente para cada lenguaje y se puede pegar tal cual.

Casos de uso

La mayor parte del dolor con las regex no es la idea, sino el ciclo constante de copiar, pegar y volver a ejecutar, y descubrir tarde que una regla nunca coincidió.

  1. Extracción de campos de registros y API

    Extrae IP, ID de usuario, códigos de estado o marcas de tiempo de registros y respuestas de API con grupos de captura que puedes verificar.

  2. Validación de formularios y entradas

    Prueba las reglas de validación con muestras reales antes de publicarlas: correos, números de teléfono, identificadores y códigos personalizados.

  3. Reescritura masiva de contenido

    Previsualiza reemplazos de marca o de URL sobre cuerpos de texto largos antes de dejar que el cambio llegue a producción.

  4. Migración de código y SDK

    Mueve llamadas de API heredadas, claves de configuración o sintaxis entre versiones manteniendo capturadas las partes dinámicas.

  5. Limpieza de Markdown y documentación

    Elimina líneas en blanco, normaliza enlaces o extrae secciones para que las notas se importen limpias en otra herramienta.

  6. Revisión de seguridad y anonimización

    Detecta posibles fugas de tokens, correos o números de teléfono antes de publicar o compartir registros.

  7. Depuración de configuración y scripts

    Las reescrituras de Nginx, los scripts de CI, los webhooks y las búsquedas del IDE comparten dialectos de regex que conviene verificar primero.

  8. Aprendizaje y enseñanza

    Recorre grupos de captura, lookarounds y anclas con resaltado en vivo: ideal para trabajar en pareja y hacer revisiones.

Ver también

Cuando la regla ya se ve bien, aplica el cambio con Reemplazo de texto para cuerpos de texto completos; si los datos van por líneas, Herramientas de líneas aplica la misma regex por línea, mientras que Limpiador de texto ordena después los espacios. Para confirmar cuánto acortó o amplió el texto el cambio, pásate por Contador de texto y haz una comparación rápida de caracteres, palabras y bytes.

Buenas prácticas

Las regex son fáciles de escribir pero difíciles de confiar sin unas cuantas disciplinas pequeñas.

  • Empieza con una muestra corta para validar el patrón y luego amplía. Los casos límite aparecen antes así.
  • Añade anclas o límites de palabra después de los cuantificadores para que el motor no se trague con avidez contexto de más.
  • Vigila los cuantificadores apilados como (a+)+. Toma en serio cualquier aviso de ReDoS y reescribe el patrón.
  • Los distintos motores escapan de forma diferente las retrorreferencias, los grupos con nombre y las clases Unicode. Vuelve a probar el código exportado en su lenguaje de destino.
  • Guarda una copia del texto original antes de ejecutar un reemplazo destructivo, sobre todo con el flag g.
  • Los enlaces para compartir incluyen el texto de prueba. Anonimiza cualquier contenido sensible o sustitúyelo por un ejemplo antes de enviarlo.

Limitaciones

Este probador refleja la semántica de las regex de JavaScript, que no es la misma que la de cualquier otro motor.

  • El análisis y la ejecución usan el motor RegExp del navegador, así que PCRE, Python, Go y Java pueden comportarse de forma distinta.
  • Los fragmentos exportados aplican el escape literal necesario, pero los patrones complejos aún deben volver a probarse en el lenguaje de destino.
  • \b solo cuenta caracteres de palabra ASCII, así que el texto CJK y el de ancho completo pueden necesitar lookarounds para comportarse como se espera.
  • La detección de ReDoS tiene un presupuesto de tiempo fijo. Los patrones muy complejos pueden terminar sin conclusión y aun así merecen una revisión humana.
  • La lista de coincidencias se limita a 1000 entradas por rendimiento. Los recuentos siguen siendo exactos, pero solo se listan las primeras 1000.
  • La prueba en vivo no sustituye a las pruebas de rendimiento en producción con volúmenes de datos reales.

Preguntas frecuentes

Algunas preguntas prácticas sobre flags, grupos de captura, rendimiento y exportación de código.

Mi regex funciona aquí pero falla en Python o Go. ¿Por qué?

Los motores difieren en retrorreferencias, clases Unicode, lookbehind y grupos con nombre. Esta herramienta sigue el RegExp de JavaScript. Trata los fragmentos exportados como un punto de partida y vuelve a probarlos en el lenguaje de destino.

Activé g pero solo veo algunas coincidencias listadas.

La interfaz lista las primeras 1000 coincidencias para mantener la página ágil. Los recuentos totales siguen siendo exactos; solo se trunca el detalle por fila.

¿Cuándo debería activar u o v?

Activa u siempre que el patrón use clases Unicode, \u{...}, emoji o \p{...}. Esta herramienta expone u directamente. Si tu navegador admite v (Unicode Sets), ajusta el código exportado a mano.

El indicador de ReDoS sigue mostrando comprobando. ¿Por qué?

recheck se ejecuta con un presupuesto de tiempo. Los patrones muy complejos pueden superarlo. Simplifica la regex, reduce los cuantificadores anidados o prueba con una muestra más pequeña.

¿Cómo funcionan $1, $<name> y $&?

$& es la coincidencia completa, $1 y $2 referencian los grupos numerados y $<name> referencia los grupos con nombre. Escribe $$ para mantener un signo de dólar literal.

¿El enlace para compartir incluye el texto de prueba?

Sí. El patrón, los flags, el reemplazo y el texto de prueba se comprimen en el hash de la URL. Anonimiza el contenido sensible antes de compartirlo.

¿Por qué una coincidencia de ancho cero a veces congela el motor?

Las coincidencias de ancho cero (como ^, los lookarounds o \b) pueden entrar en bucle con algunos patrones. Esta herramienta detecta ese caso, avanza y muestra una nota de estado para que la página siga respondiendo.

¿Qué tamaño de texto puede manejar?

De decenas a unos cientos de miles de caracteres funciona bien. Más allá de eso, divide el texto en fragmentos, porque el coste del resaltado crece con el tamaño.

Activé g pero el reemplazo solo cambió una aparición.

El reemplazo usa los flags configurados. Confirma que g está activado. Si solo existe una coincidencia, relaja las anclas o los cuantificadores.

¿Se admiten los grupos de captura con nombre?

Sí. Los grupos (?<name>...) aparecen bajo «Grupos con nombre» y se pueden referenciar como $<name> en el campo de reemplazo.

¿Se envía mi regex a algún sitio?

No. El análisis, la coincidencia, el reemplazo y la detección de ReDoS se ejecutan en el navegador. Nada sale de tu sesión.

¿Puedo guardar patrones?

Usa Copiar enlace para compartir para guardar el patrón, los flags y el texto de prueba en un hash de URL, y luego márcalo o pégalo en tus notas.

Herramientas relacionadas

Cuando la regla ya está afinada, las herramientas de texto vecinas cubren el reemplazo, el procesamiento por líneas, la limpieza y las comprobaciones de longitud.