Saltar al contenido

Probador de expresiones regulares para JavaScript

Escribe un patrón, pega un texto y mira cómo se resaltan las coincidencias mientras escribes. Verás los grupos de captura, las banderas y los reemplazos, y nada sale de tu navegador.

Banderas (flags)

Usa el motor de expresiones regulares de JavaScript (ECMAScript) de tu navegador, el mismo que Node.js.

Coincidencias en tu texto

Escribe a ana.lopez@example.com o a support@fileora.tools si necesitas ayuda. No válido: user@localhost

Cómo probar una expresión regular

  1. Escribe tu patrón en el recuadro Expresión regular, sin las barras de los extremos. Al abrir la herramienta ya hay cargado un patrón de ejemplo que encuentra direcciones de correo.
  2. Elige las banderas tocando g, i, m, s, u o y. Las banderas activas aparecen después de la barra de cierre.
  3. Pega tu texto en Texto de prueba. Cada coincidencia se resalta en el bloque Coincidencias en tu texto, con el total arriba.
  4. Si quieres, agrega un reemplazo, como $1 o $<name>, para ver cómo queda el texto después de reemplazar.
  5. Revisa el detalle de coincidencias: la tabla muestra la posición de cada coincidencia y el valor de cada grupo de captura.

Características

  • Resaltado en vivo de las coincidencias mientras escribes.
  • Las seis banderas de JavaScript: global, ignorar mayúsculas, multilínea, punto que incluye saltos de línea, Unicode y fija (sticky).
  • Grupos de captura en una tabla, con los grupos con nombre bajo su propio nombre.
  • Vista previa del reemplazo con $1, $<name> y $&, y un botón de copiar.
  • Número de coincidencias y posiciones, con las primeras 1000 listadas.
  • Protección contra patrones descontrolados: la evaluación corre en un Web Worker y se detiene a los 1.5 segundos.
  • Mensajes de error del propio motor cuando un patrón no es válido, por ejemplo por un grupo sin cerrar.

Por qué usar el probador de regex de Fileora

Los datos de prueba muchas veces son datos reales: registros de servidor, exportaciones de clientes, listas de correos. Fileora ejecuta la expresión regular en tu navegador, así que nada de eso sale de tu dispositivo. Es gratis, no pide registro y los botones de las banderas son lo bastante grandes para usarlos cómodamente en el celular.

Como el probador usa el mismo motor que tu código JavaScript, no te llevarás sorpresas al copiar el patrón a tu proyecto.

Guía rápida de regex en JavaScript

  • . cualquier carácter menos un salto de línea (cualquiera sin excepción con la bandera s)
  • \d, \w, \s un dígito, un carácter de palabra (letra sin acento, dígito o guion bajo), un espacio en blanco
  • \D, \W, \S lo contrario de cada uno de los anteriores
  • [abc], [^abc], [a-z] un carácter de un conjunto, fuera de un conjunto o dentro de un rango
  • ^ y $ inicio y fin del texto, o de cada línea con la bandera m
  • \b un límite de palabra
  • *, +, ? cero o más, una o más, cero o una vez
  • {3}, {2,5} exactamente 3 veces, o entre 2 y 5 veces
  • *?, +? versiones perezosas, que coinciden con lo menos posible
  • (abc) un grupo de captura; (?:abc) un grupo que no captura
  • (?<anio>\d{4}) un grupo con nombre, que se usa como $<anio> en un reemplazo
  • a|b a o b
  • (?=x), (?!x) seguido de x, no seguido de x
  • (?<=x), (?<!x) precedido de x, no precedido de x
  • \p{L} cualquier letra de cualquier alfabeto, con la bandera u, útil para textos con acentos y eñes

Cómo evitar patrones lentos

El retroceso catastrófico suele venir de un grupo repetido que contiene otra repetición, como (a+)+ o (\w+\s?)*. Haz que cada parte coincida con algo distinto, ancla el patrón con ^ y $ cuando puedas y prefiere clases de caracteres específicas en lugar de .*.

Para revisar el efecto de un reemplazo en un archivo largo, compara el antes y el después con el comparador de textos, y ordena el JSON que extraigas con el formateador JSON.

Preguntas frecuentes

¿Qué tipo de regex usa este probador?

Usa el motor de expresiones regulares de JavaScript de tu navegador, que sigue el estándar ECMAScript y se comporta igual que Node.js. Los patrones que funcionan aquí funcionan en tu código JavaScript y TypeScript. Otros motores, como PCRE, Python o .NET, tienen algunas diferencias de sintaxis y funciones, así que pruébalos en su propio entorno.

¿Qué hacen las banderas g, i, m, s, u e y?

g encuentra todas las coincidencias en lugar de solo la primera. i ignora mayúsculas y minúsculas. m hace que ^ y $ coincidan al principio y al final de cada línea. s permite que el punto coincida con los saltos de línea. u activa el modo Unicode completo, necesario para cosas como \p{L}. y (sticky o fija) solo busca coincidencias justo en la posición donde terminó la anterior.

¿Cómo uso los grupos de captura en el reemplazo?

Escribe un reemplazo en el recuadro Reemplazar con. Usa $1, $2 y así sucesivamente para los grupos numerados, $<nombre> para un grupo con nombre y $& para la coincidencia completa. El bloque Resultado del reemplazo muestra el texto completo con todos los reemplazos aplicados, y lo puedes copiar.

¿Por qué se detuvo mi patrón por tardar demasiado?

Algunos patrones, como (a+)+ seguido de algo que no coincide, obligan al motor a probar una cantidad enorme de combinaciones. Esto se llama retroceso catastrófico (catastrophic backtracking). El probador ejecuta cada patrón en un proceso aparte, un Web Worker, y lo detiene después de 1.5 segundos para que la página nunca se congele. Reescribe el patrón para que las repeticiones anidadas no puedan coincidir con el mismo texto de formas distintas.

¿Hay un límite de coincidencias?

El número total de coincidencias siempre se cuenta y se muestra, pero la tabla Detalle de coincidencias lista solo las primeras 1000 para que la página siga rápida. El resaltado en el texto cubre esas mismas 1000 primeras.

¿Mi texto de prueba se envía a un servidor?

No. Los patrones y el texto se procesan en un Web Worker dentro de tu navegador. No se sube ni se guarda nada, así que puedes probar con archivos de registro o datos que contengan información personal.

¿Por qué \w no encuentra las letras con acento?

En JavaScript, \w solo incluye letras inglesas sin acento, dígitos y el guion bajo, así que no coincide con á, é, ñ ni ü. Para cualquier letra de cualquier idioma, activa la bandera u y usa \p{L}, o escribe un conjunto propio como [a-záéíóúüñ] junto con la bandera i.

¿No encuentras la herramienta que necesitas o algo no funciona?

Cuéntanos qué herramienta te gustaría o qué salió mal. Leemos todos los mensajes, y las solicitudes deciden lo próximo que construimos.

Abre tu app de correo. Por favor, no adjuntes archivos privados.