Skip to main content
UtilityStack

Probador de regex — expresiones regulares JavaScript

Construye una expresión regular y mira cómo coincide (o falla) con tu cadena de prueba en tiempo real. Grupos de captura, flags y vista previa de reemplazo, todo en vivo; nada sale de tu navegador.

2 coincidencia(s)
Patrón
//gi
Reemplazo
Cadena de prueba
Resultado del reemplazo
Reach out at <<hello@example.com>> or <<support@utility.test>> for help.
Coincidencias
  • @13hello@example.com
  • @34support@utility.test

¿Qué es una expresión regular?

Una expresión regular (regex) es un pequeño lenguaje para describir patrones en texto. Con unos pocos caracteres puedes extraer emails de un párrafo, validar que un código postal sigue el formato de un país, o reescribir cada identificador snake_case de un archivo en camelCase. Los motores JavaScript modernos compilan una regex una vez y luego la ejecutan tan rápido como un bucle ajustado.

Este probador usa la implementación RegExp nativa de la plataforma, así que todo lo que funciona aquí también funciona en tiempo de ejecución en Node, Deno, Bun y todos los navegadores modernos. Los flags g, i, m, s, u y y cambian la semántica de coincidencia; los grupos de captura (los paréntesis del patrón) recogen subcadenas que puedes referenciar en el reemplazo como $1, $2 etc.

Cómo usar esta herramienta

  1. Elige una plantilla (email, URL, IPv4…) o escribe tu propio patrón en el campo de regex.
  2. Activa/desactiva los botones de flag (g, i, m, s, u, y) para afinar la coincidencia. Pasa el cursor para una descripción de cada flag.
  3. Edita la cadena de prueba a la derecha — las coincidencias se resaltan en vivo. La lista de coincidencias debajo muestra la posición, la coincidencia completa y los grupos de captura.
  4. Añade una cadena de reemplazo para previsualizar un replace global. Usa $1, $2, $&, $` y $' igual que String.prototype.replace.

Preguntas frecuentes

¿Qué dialecto de regex se soporta?

Regex JavaScript / ECMAScript (el mismo motor contra el que correrá tu código). Esto significa que los lookbehinds, grupos nombrados (?<nombre>…) y escapes de propiedad Unicode \p{…} funcionan todos. Las funcionalidades exclusivas de PCRE como patrones recursivos no se soportan.

¿Cómo coincido con un carácter especial literal como . o ?

Escápalo con barra invertida: \., \?, \(, \). Dentro de una clase de caracteres [.] el punto ya es literal, así que [.?] coincide con un punto literal o un signo de interrogación.

¿Cuál es la diferencia entre cuantificadores codiciosos y perezosos?

.* es codicioso — agarra tanto como sea posible y luego retrocede. .*? es perezoso — agarra lo menos posible y luego expande. Perezoso para coincidir contenido entre marcadores; codicioso para coincidir líneas enteras.

¿Por qué mi patrón no coincide con nada la segunda vez?

Si usas el flag global (g) y reutilizas el mismo objeto RegExp, lastIndex avanza tras cada exec(). Reinícialo con regex.lastIndex = 0, o crea una nueva RegExp en cada llamada. Este probador lo reinicia entre renders.

¿Mi regex y mi cadena de prueba se envían a un servidor?

No. Todo se ejecuta en tu navegador vía el motor RegExp nativo. Tus entradas nunca tocan nuestros servidores, así que el probador es seguro incluso con datos sensibles como una línea de log con tokens.

Casos de uso comunes

Donde echar mano de una regex se rentabiliza en segundos.

Validar entrada de usuario

Un email, un código postal, un número de teléfono — una regex ajustada se escribe más rápido que un parser y basta cuando solo quieres un check de cordura antes de enviar los datos más adelante.

Extraer datos de logs

Saca request IDs, IPs o status codes de un flujo de logs sin parsear JSON. Los grupos de captura te dan los campos directamente.

Reescribir código a escala

Renombrar una función, cambiar un estilo de comillas o actualizar una llamada de API obsoleta en toda una codebase canalizando ripgrep a sed — los dos hablan regex.

Buscar y reemplazar en editores

La mayoría de editores (VS Code, JetBrains, Vim) traen búsqueda-y-reemplazo por regex. Prueba el patrón aquí primero para evitar corromper un archivo en masa.

Consejos y atajos

Hábitos que mantienen las regex mantenibles.

Anclar cuando puedas

Si un valor debe ocupar todo un campo, ancla con ^ al principio y $ al final. Sin anclas, /\d+/ también coincide dentro de 'abc123def' — generalmente no es lo que quieres para validar.

Prefiere clases de caracteres a alternación

[abc] es más rápido y claro que (a|b|c). Usa alternación solo cuando las alternativas son multi-carácter.

Comenta con el flag x si está disponible

JavaScript no tiene el flag verbose, pero puedes construir el patrón desde un literal de string repartido en varias líneas y concatenarlo. Para patrones complejos, es una ganancia de legibilidad mucho mayor que una megalínea.

Cuándo regex es la herramienta equivocada

No intentes parsear HTML, JSON o cualquier cosa con estructura anidada. Usa un parser real (DOMParser, JSON.parse, un AST). La regex brilla en patrones textuales planos, no en datos estructurados en árbol.

Herramientas relacionadas