Probador de Regex
Prueba expresiones regulares con resaltado de coincidencias en vivo
Cómo funciona
Probador de Regex — Prueba 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
- Escribe o pega tu patrón regex en el campo Patrón (sin necesidad de barras envolventes).
- Activa los flags que necesites: g, i, m, s, u, y. Cada uno actualiza la lista de coincidencias al instante.
- Pega una cadena de prueba representativa en el campo de Test string — los inputs multilínea funcionan.
- Lee el panel de Coincidencias: cada entrada muestra el match completo más los grupos de captura, numerados y con nombre.
- Ajusta el patrón hasta que "Sin coincidencias" desaparezca y los tramos resaltados cubran lo que esperas.
- 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
- Expresiones cron desde cero: una guía visualAprende la sintaxis cron POSIX de 5 campos, los caracteres especiales, los valores de paso, las extensiones de Quartz, las diferencias del cron de AWS y una docena de ejemplos resueltos que puedes copiar y pegar hoy mismo en un crontab.
- Regex para no desarrolladores: una guía prácticaUn tutorial de regex amable y con poca jerga para escritores, analistas, marketeros y cualquiera que viva en Buscar y reemplazar. Aprende la sintaxis que importa y llévate diez recetas listas para usar.
Herramientas relacionadas
- Codificador/Decodificador URLCodifica y decodifica componentes URI y URLs completas
- Generador de UUIDGenera UUID v4 criptográficamente aleatorios en lote
- Decodificador JWTDecodifica e inspecciona JSON Web Tokens (cabecera, payload, expiración)
- Constructor de expresiones CronConstruye y explica expresiones cron en lenguaje sencillo
- Formateador SQLEmbellece, minifica o formatea consultas SQL en cualquier dialecto
- Conversor YAML ↔ JSONConvierte entre YAML y JSON en cualquier dirección