PixConvert

Probador de regex y depurador online gratis

Crea y depura expresiones regulares con resaltado de sintaxis instantáneo y desglose de grupos de captura directamente en tu navegador.

//
Examples:

Cómo probar una regex

1

Escribe tu patrón.

Introduce la regex entre las dos barras, sin las barras. Elige los flags con los botones g, i, m y s, o carga uno de los tres ejemplos.

2

Pega tu texto de prueba.

Pon el texto de muestra en el cuadro que hay debajo del patrón. Las coincidencias se resaltan mientras escribes y el contador muestra cuántas encontró el patrón.

3

Revisa los grupos y copia.

Lee los grupos de captura listados en cada coincidencia. Cuando el patrón funcione, cópialo como /patrón/flags y pégalo en tu código JavaScript.

Preguntas frecuentes

Respuestas sobre el motor de regex de JavaScript, los flags y los grupos.

¿Cómo pruebo una regex online?

Escribe el patrón en el cuadro superior sin las barras y pega texto de muestra debajo. Las coincidencias se resaltan mientras escribes y el contador se actualiza. Activa g para ver todas las coincidencias, no solo la primera.

¿Qué variante de regex usa este probador?

Usa el motor RegExp integrado de JavaScript, la variante ECMAScript que ejecuta tu navegador. Los patrones que coinciden aquí coinciden igual en código JavaScript y TypeScript. La sintaxis de PCRE, Python y Java puede diferir, así que prueba esos patrones en su propio motor.

¿Por qué mi regex funciona en Python o PHP pero no aquí?

JavaScript no admite parte de la sintaxis de PCRE y Python. Los cuantificadores posesivos como a++, los grupos atómicos, el flag en línea (?i) y los grupos con nombre (?P...) de Python fallan con Nothing to repeat o Invalid group. Un \K se lee como una K normal. Reescribe esas partes con la sintaxis de JavaScript.

¿Qué hacen los flags g, i, m y s?

El flag g encuentra todas las coincidencias en lugar de detenerse en la primera. El flag i ignora mayúsculas y minúsculas. Con m, los anclajes ^ y $ coinciden en cada línea. Con s, el punto también coincide con los saltos de línea. Solo g viene activado por defecto.

¿Admite los flags u, y o d?

No. Solo se pueden activar g, i, m y s. Sin u, las secuencias de escape de propiedades Unicode no funcionan y un emoji cuenta como dos caracteres, así que un punto coincide con la mitad. Por ahora, prueba los patrones con mucho Unicode en tu propio código.

¿Cómo uso los grupos de captura con nombre?

Pon un signo de interrogación y un nombre entre corchetes angulares justo después del paréntesis de apertura, como en el ejemplo integrado de word. Cada coincidencia lista entonces el grupo por su nombre, como word: longer. Si un patrón mezcla grupos con nombre y sin nombre, solo se listan los que tienen nombre.

¿Por qué mi patrón muestra coincidencias vacías?

Los patrones que pueden no coincidir con nada, como a* o \d*, también coinciden con una cadena vacía en cada posición que no encaja. En el texto bbb, a* da 4 coincidencias vacías. Usa + en lugar de * cuando necesites al menos un carácter.

¿Por qué ^ solo coincide con la primera línea?

Sin el flag m, ^ y $ marcan el inicio y el final de todo el texto. Activa m y coincidirán en cada salto de línea, así que un patrón como ^\w+ encuentra la primera palabra de cada línea en lugar de solo la de la primera línea.

¿Por qué la página se congela con algunos patrones?

Los cuantificadores anidados como (a+)+$ provocan un retroceso catastrófico (backtracking), y el probador no tiene límite de tiempo. En una prueba en Node con el mismo código, 27 letras tardaron unos 2 segundos y cada letra extra lo duplicaba. Acota el grupo interno y recarga la pestaña si se bloquea.

¿Puedo reemplazar texto con este probador de regex?

No, todavía no hay modo de reemplazo. El probador solo muestra coincidencias y grupos de captura. Para planificar un reemplazo, comprueba que cada grupo capture la parte correcta y luego úsalo como $1 en String.replace en tu propio código.

¿El texto que pruebo se envía a algún sitio?

El texto de prueba no se envía; la coincidencia se ejecuta en tu navegador. En el sitio en producción, Google Analytics registra cada ejecución de coincidencia y su duración. Si el patrón no es válido, también recibe el mensaje de error, que en Chrome incluye el propio patrón.

Funciones del probador de regex para patrones de JavaScript

Tu patrón se ejecuta en el propio motor RegExp de JavaScript del navegador, así que un patrón que coincide aquí coincide igual en tu código JS.

Probador de regex con el patrón \d{4}-\d{2}-\d{2}, la bandera g activada y 3 fechas resaltadas en líneas de registro

Resalta las coincidencias de la regex mientras escribes

Cada coincidencia de tu texto de prueba se marca en color y el contador de coincidencias de arriba se actualiza con cada cambio. Con g activado ves todas las coincidencias; sin él, solo la primera.

  • Se recalcula con cada pulsación de tecla
  • El flag g encuentra todas las coincidencias
  • El número de coincidencias aparece sobre el texto
Pruébalo ahora
Grupos de captura del probador de regex para (?<year>\d{4})-(?<month>\d{2}): year 2024 con month 01, 01 y 02

Ve los grupos de captura de cada coincidencia

Debajo de los resaltados, cada coincidencia tiene su propia línea con sus grupos. Los grupos con nombre se muestran por su nombre, como word: longer, y los grupos sin nombre aparecen como Grupo 1, Grupo 2 y así sucesivamente.

  • Los grupos con nombre se listan por su nombre
  • Los grupos sin coincidencia muestran un guion
  • Una línea por coincidencia
Pruébalo ahora

Cuatro flags, un clic para cada uno

Los botones junto al patrón activan global (g), ignorar mayúsculas (i), multilínea (m) y dotAll (s). El flag g viene activado por defecto. Todavía no hay flags u, y ni d.

Descubre por qué falla un patrón

Un patrón no válido muestra el mensaje del propio motor, como Unterminated group o Nothing to repeat, en un cuadro rojo. Corrige el patrón y las coincidencias vuelven.

Empieza con un ejemplo

Tres patrones de muestra se cargan con un clic: direcciones de correo, fechas ISO como 2024-01-15 y un grupo con nombre para palabras de cinco letras o más. Copiar deja el patrón en tu portapapeles como /patrón/flags.

Tu texto de prueba se queda aquí

La coincidencia se ejecuta en tu dispositivo y el texto que pruebas nunca se envía. Las estadísticas de uso registran cuánto tardó una coincidencia y, si el patrón no es válido, el mensaje de error, que puede incluir el patrón.

Usos habituales de las regex

Tres tareas cotidianas en las que probar una regex primero te ahorra un error después.

Validación de formularios

Comprueba un patrón de correo, teléfono o código postal con muestras reales antes de ponerlo en un formulario. Pega entradas válidas e inválidas en líneas separadas y mira cuáles coinciden.

  • Pega entradas válidas e inválidas, una por línea
  • Activa m para que los anclajes coincidan en cada línea
  • Confirma que el patrón rechaza todas las muestras incorrectas

Análisis de logs

Extrae campos de líneas de registro, como direcciones IP, marcas de tiempo y códigos de estado. Pega unas cuantas líneas de un archivo de registro y usa grupos para capturar cada parte.

  • Captura direcciones IP con grupos numerados
  • Encuentra fechas ISO como 2024-01-15
  • Pon nombre a cada grupo para que todos los campos estén etiquetados

Búsqueda de texto antes de reemplazar

Encuentra cada URL, hashtag o palabra repetida en un bloque de texto antes de escribir el paso de reemplazo en tu código. El contador de coincidencias te dice cuántos resultados esperar.

  • Encuentra URL y direcciones de correo en el texto pegado
  • Detecta letras o palabras duplicadas con una referencia inversa
  • Comprueba el número de coincidencias antes de un reemplazo masivo