Todas las herramientas

Probador de Regex

Prueba expresiones regulares con resaltado de coincidencias en vivo

//
Coincidencias · 2
Hello world from Multilities
[0]Hello world($1=Hello, $2=world)
[1]from Multilities($1=from, $2=Multilities)

Cómo funciona

Probador de RegexPrueba expresiones regulares con resaltado de coincidencias en vivo. Todo el procesamiento ocurre en tu navegador — sin subida, sin registro, sin email. Gratis para siempre.

Última actualización:

Acerca de Probador de Regex

Las regex son una de esas habilidades donde un bucle de prueba de treinta segundos te ahorra una hora de mirar al vacío. Pega un patrón, pega una cadena de muestra y observa cómo las coincidencias se resaltan en vivo mientras ajustas flags o arreglas un corchete rebelde. Este probador de regex usa el motor RegExp de JavaScript — el mismo que correrá tu código en el navegador, en Node.js o en cualquier runtime basado en V8/JavaScriptCore — así que lo que ves aquí es lo que tendrás en producción.

Los toggles de flags cubren todo lo que ECMAScript soporta: g para global, i para case-insensitive, m para anclas ^/$ multilínea, s para dotAll ("." matchea saltos de línea), u para Unicode completo y y para sticky matching. Cada coincidencia te muestra su texto completo, el índice y los grupos de captura (numerados y con nombre) para que construyas y verifiques la forma exacta de extracción que tu código espera.

Los dialectos de regex varían: PCRE en PHP, RE2 en Go y Cloud Logging, el motor de .NET y el módulo re de Python difieren en sintaxis de lookbehind, cuantificadores posesivos y escapes de propiedades Unicode. Este probador apunta específicamente a ECMAScript / JavaScript: si estás escribiendo patrones para un servicio Go o una query de BigQuery, verifica el dialecto antes de hacer ship.

Cómo usar Probador de Regex

  1. Escribe o pega tu patrón regex en el campo Patrón (sin necesidad de barras envolventes).
  2. Activa los flags que necesites: g, i, m, s, u, y. Cada uno actualiza la lista de coincidencias al instante.
  3. Pega una cadena de prueba representativa en el campo de Test string — los inputs multilínea funcionan.
  4. Lee el panel de Coincidencias: cada entrada muestra el match completo más los grupos de captura, numerados y con nombre.
  5. Ajusta el patrón hasta que "Sin coincidencias" desaparezca y los tramos resaltados cubran lo que esperas.
  6. Si ves "Regex inválida", revisa por un grupo sin cerrar, una clase de caracteres sin escapar o un conflicto de flags.

Casos de uso comunes

  • Construir un patrón de validación de input para un campo de email, slug o teléfono antes de pegarlo en tu librería de formularios.
  • Extraer campos estructurados (timestamps, request ids, status codes) de líneas de log para un script de análisis rápido.
  • Refinar un buscar-y-reemplazar en tu editor con referencias a grupos de captura como $1, $2.
  • Verificar que un find-and-replace destructivo solo va a tocar las líneas que esperas antes de lanzarlo sobre un archivo real.
  • Enseñarle a un compañero por qué ".*" es greedy y cómo se comportan los cuantificadores lazy (".*?").

Consejos y errores comunes

  • Sin el flag g solo se devuelve la primera coincidencia: actívalo siempre que estés extrayendo todas las ocurrencias.
  • Si necesitas que "." matchee saltos de línea, activa el flag s (dotAll) en lugar de recurrir a "[\s\S]".
  • Usa grupos de captura con nombre como "(?<year>\d{4})" para que los consumidores referencien match.groups.year en vez de índices numéricos frágiles.
  • ECMAScript soporta lookbehind ("(?<=…)") en navegadores modernos, pero Safari lo adoptó tarde: verifica en tus runtimes objetivo si necesitas soportar dispositivos antiguos.

Preguntas frecuentes

¿Qué motor de regex se soporta?

El motor RegExp nativo de JavaScript, el mismo usado en navegadores y Node.js. Las flags ECMAScript g, i, m, s, u, y están soportadas.

¿Puedo ver grupos de captura?

Sí. Cada coincidencia muestra los grupos numerados $1, $2, …. Los grupos con nombre aparecen en la salida JSON de cada coincidencia.

¿Por qué '.*' coincide demasiado?

Por defecto '.' no coincide con saltos de línea. Activa la flag 's' (dotAll) si necesitas que '.' coincida con todos los caracteres incluyendo saltos.

¿Soporta features de PCRE como patrones recursivos o cuantificadores posesivos?

No. Este es el motor RegExp de JavaScript, conforme a ECMAScript. Patrones recursivos, cuantificadores posesivos ("++", "*+") y ciertos condicionales de PCRE no están soportados. Para esos casos, usa una herramienta específica de PHP/Perl/PCRE.

¿Puedo probar patrones destinados a Go (RE2) o BigQuery?

Puedes prototipar la forma básica, pero RE2 omite a propósito lookbehind y backreferences por motivos de rendimiento y seguridad. Verifica siempre en el dialecto destino: esta herramienta es de sabor JS.

¿Por qué mi patrón matchea más de la cuenta sin avisar?

Los cuantificadores son greedy por defecto: ".*" come todo lo que puede. Añade "?" para hacerlos lazy (".*?"), o usa una clase de caracteres más específica como "[^/]*" en lugar de ".".

Lo más reciente del blog

Herramientas relacionadas