Probador Regex: Prueba Patrones con Coincidencias
Probador regex: depura expresiones regulares con resaltado de coincidencias en vivo, grupos de captura y soporte para todas las flags regex.
¿Qué es el Probador Regex?
El Probador Regex es una herramienta gratuita basada en navegador para escribir, probar y depurar expresiones regulares con retroalimentación en tiempo real. Resuelve el problema central del desarrollo regex: no puedes saber si un patrón es correcto hasta probarlo contra texto real, y el ciclo de editar-ejecutar-verificar en la mayoría de los entornos es lento y fragmentado.
Escribe un patrón y se evalúa al instante. Las coincidencias se resaltan directamente en tu cadena de prueba, los grupos de captura se extraen y etiquetan, las posiciones de caracteres se reportan para cada coincidencia, y un modo de reemplazo permite previsualizar sustituciones antes de incorporarlas al código de producción. Se soportan las seis flags JavaScript. Una biblioteca de 49 patrones preconstruidos organizados por categoría está disponible para necesidades comunes de validación. Todo funciona en el navegador — tus patrones y datos de prueba nunca se envían a ningún lado.
Funcionalidades principales
- Coincidencia en vivo al escribir: Las coincidencias se recalculan en cada pulsación de tecla usando el motor nativo
RegExpde JavaScript. El panel de resultados se actualiza sin ningún clic. - Todas las flags regex JavaScript (g, i, m, s, u, y): Cada flag es una casilla etiquetada: global, insensible a mayúsculas, multilínea, dotAll, unicode y sticky. Las flags activas se muestran en vivo junto al campo de entrada del patrón, reflejando la notación
/patrón/flagsusada en código fuente JavaScript. - Resaltado de coincidencias en la cadena de prueba: El panel de Coincidencias Resaltadas muestra tu cadena de prueba con cada coincidencia envuelta en un elemento
<mark>con fondo de color primario. El texto sin coincidencias aparece sin estilo. El panel muestra el conteo de coincidencias en vivo. - Extracción de grupos de captura: El panel de Detalles de Coincidencias aparece cuando hay coincidencias. Cada entrada muestra el texto completo de la coincidencia, sus posiciones de inicio y fin, y una lista etiquetada de grupos de captura (
$1,$2, etc.). Los grupos sin contenido se etiquetan como "vacío". - Conteo y posiciones de coincidencias: Cada entrada en el panel de detalles muestra el
indexexacto yindex + match.length, que corresponden directamente a la propiedadindexdeRegExpExecArrayde JavaScript. - Modo de reemplazo con sustitución: Una sección de reemplazo activable acepta una cadena de reemplazo y muestra el resultado completo de la sustitución. Soporta retrorreferencias (
$1,$2). El resultado puede copiarse al portapapeles. - Biblioteca de patrones regex comunes: Una biblioteca de patrones buscable con 49 patrones en 8 categorías: Validación, Fechas y Horas, Números, Web y Red, Archivos y Rutas, Código, Texto e Identificadores. Al hacer clic en "Use Pattern" se carga en el campo de entrada del patrón.
Cómo usar el Probador Regex
Paso 1: Ingresar el patrón
Escribe tu expresión regular en el campo de entrada del patrón. El campo se muestra con delimitadores / a cada lado para indicar visualmente el formato regex. No incluyas las barras en lo que escribes — solo el cuerpo del patrón.
Si tu patrón tiene un error de sintaxis (como un grupo no cerrado o una secuencia de escape inválida), aparece inmediatamente un mensaje de error en rojo debajo del campo de entrada, con el texto exacto del error del constructor RegExp de JavaScript. No puedes ejecutar un patrón roto, pero el mensaje de error identifica exactamente qué está mal.
Paso 2: Configurar las flags
Debajo del campo de entrada del patrón hay seis casillas de flags. Por defecto, la flag g (global) está habilitada. Activa o desactiva las flags haciendo clic en sus casillas:
g(global): encontrar todas las coincidencias, no solo la primerai(insensible a mayúsculas): tratar mayúsculas y minúsculas como equivalentesm(multilínea): hacer que^y$coincidan al inicio y fin de cada línea, no solo del string completos(dotAll): hacer que.coincida con caracteres de nueva línea además de todos los demásu(unicode): habilitar soporte Unicode completo; requerido para patrones que usan escapes de propiedad Unicode\p{}y(sticky): coincidir solo en la posición actual en el string (lastIndex), sin buscar hacia adelante
La cadena de flags activas se muestra en vivo junto al campo del patrón, de modo que gi aparecería si global e insensible a mayúsculas están marcadas.
Paso 3: Ingresar la cadena de prueba
Pega o escribe el texto contra el que quieres coincidir en el panel Cadena de Prueba. El conteo de caracteres de la cadena de prueba se muestra en el encabezado del panel. El área de texto acepta entrada multilínea y se redimensiona verticalmente.
Paso 4: Leer los resultados de coincidencias
El panel de Coincidencias Resaltadas a la derecha se actualiza al instante. Cada porción de la cadena de prueba que coincida con tu patrón queda resaltada. El encabezado del panel muestra el conteo total de coincidencias.
Debajo de los dos paneles principales, aparece una sección de Detalles de Coincidencias que lista cada coincidencia individualmente:
- Número de coincidencia (con base 1)
- El texto coincidente, mostrado en un bloque de código resaltado
- Posiciones de caracteres: índice de inicio e índice de fin
- Grupos de captura, etiquetados como
$1,$2, etc.
Paso 5: Usar el modo de reemplazo (opcional)
Haz clic en el botón "Show Replace" para abrir la sección de reemplazo. Ingresa una cadena de reemplazo en el campo Replace With. Las retrorreferencias funcionan: $1 inserta el contenido del primer grupo de captura, $2 el segundo, y así sucesivamente. El panel de Resultado se actualiza inmediatamente mostrando el resultado completo de la sustitución. Haz clic en el ícono de copiar para copiar el resultado.
Paso 6: Usar la biblioteca de patrones (opcional)
Haz clic en el botón "Pattern Library" para abrir el panel de patrones buscable. Escribe en el cuadro de búsqueda para filtrar por nombre, descripción o categoría. Haz clic en "Use Pattern" junto a cualquier entrada para cargarlo directamente en el campo del patrón. La biblioteca se cierra automáticamente después de la selección.
Ejemplos prácticos
Ejemplo 1: Validar direcciones de email
Patrón: ^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$
Flags: g
Cadena de prueba:
user@example.com
invalid-email
another@test.co.uk
@missing-local.com
Resultado: Dos coincidencias — user@example.com y another@test.co.uk se resaltan. Las otras dos líneas no producen coincidencias.
Ejemplo 2: Extraer grupos de captura de líneas de log
Patrón: (\d{4}-\d{2}-\d{2}) (\w+): (.+)
Flags: gm
Cadena de prueba:
2026-02-28 ERROR: Connection timeout after 30s
2026-02-27 INFO: Server started on port 3000
Detalles de la Coincidencia 1:
- Coincidencia completa:
2026-02-28 ERROR: Connection timeout after 30s $1:2026-02-28$2:ERROR$3:Connection timeout after 30s
Ejemplo 3: Reemplazo con retrorreferencias de grupos de captura
Patrón: (\w+)\s(\w+) Reemplazar con: $2, $1 Cadena de prueba: John Smith Resultado: Smith, John
Esto demuestra el modo de reemplazo usando $1 y $2 para intercambiar el orden de dos grupos de palabras capturados.
Consejos y mejores prácticas
Activa la flag global para pruebas exhaustivas. Con g desactivado, el matching se detiene después del primer resultado. Durante el desarrollo normalmente querrás g habilitado para ver todas las coincidencias potenciales en tu cadena de prueba y verificar que no haya coincidencias adicionales inesperadas.
Usa la flag m (multilínea) cuando tu patrón use ^ o $. Sin m, ^ solo coincide con el inicio del string completo y $ solo con el final. Con m, coinciden al inicio y fin de cada línea, que es casi siempre lo que quieres al procesar entrada multilínea.
La protección contra coincidencias de longitud cero está integrada. Cuando la flag global está activa, el bucle de matching verifica las coincidencias de longitud cero e incrementa lastIndex para evitar un bucle infinito. Esto significa que patrones como a* o \b no bloquearán el navegador.
Copia el patrón en notación /patrón/flags. El botón Copy Pattern escribe el patrón completo al portapapeles en notación JavaScript, incluyendo las barras y las flags activas — por ejemplo /\d{4}-\d{2}-\d{2}/gm. Puedes pegarlo directamente en código fuente JavaScript.
Guarda patrones en Snippets. El botón Save to Snippets (visible junto a Copy Pattern) almacena tu patrón actual — en formato /patrón/flags — en la biblioteca de Snippets disponible a través de las funciones de supporter de Glyph Widgets. Esto es más duradero que confiar solo en el historial de sesión.
Problemas comunes y solución de problemas
El patrón muestra un mensaje de error en rojo. El texto del error proviene directamente del constructor RegExp de JavaScript y describe qué salió mal. Los errores comunes incluyen Invalid regular expression: missing ) (grupo de captura no cerrado) e Invalid escape (una barra inversa seguida de un carácter que no es una secuencia de escape válida sin la flag u). Lee el mensaje de error literalmente — especifica el problema.
Las coincidencias esperadas no se resaltan. Verifica si necesitas la flag i para matching insensible a mayúsculas, o la flag m si tu patrón usa ^ o $ en entrada multilínea. También verifica que el patrón no esté demasiado anclado — ^\d+$ solo coincide con una línea que contenga únicamente dígitos, no dígitos dentro de otro texto.
Los grupos de captura muestran "vacío". Un grupo de captura es "vacío" cuando el grupo participa en la coincidencia pero el subpatrón coincidió con cero caracteres, o cuando un grupo opcional ((...)?) no participó. Esto es distinto de un grupo que no estaba en el patrón.
El reemplazo no usa retrorreferencias. Las retrorreferencias en la cadena de reemplazo usan la sintaxis $1, $2, $n. Usar \1 o %1 no funcionará — no son válidos en String.prototype.replace de JavaScript. Los grupos nombrados usan la sintaxis $<nombre>.
El patrón carga desde la biblioteca pero no coincide. Algunos patrones de la biblioteca incluyen anclas (^ y $) y están diseñados para validación de strings completos, no para coincidencia de subcadenas dentro de una cadena de prueba más grande. Si buscas el patrón dentro de un párrafo, elimina las anclas o agrega g sin m para ver si el patrón central coincide.
Privacidad y seguridad
Toda la evaluación de expresiones regulares en el Probador Regex se ejecuta en tu navegador usando el motor nativo RegExp de JavaScript. Ningún patrón, ninguna cadena de prueba y ningún resultado de coincidencias se transmite a ningún servidor. La función de URL compartible codifica tu patrón y cadena de prueba en la URL misma (solo del lado del cliente), por lo que compartir un enlace no implica un viaje de ida y vuelta al servidor. La herramienta funciona sin conexión después de la carga inicial de la página.
Preguntas frecuentes
¿Es gratuito el Probador Regex? Sí, completamente gratuito sin cuenta, sin registro y sin límites de uso.
¿Están seguros mis datos? Tus patrones y cadenas de prueba nunca salen de tu navegador. Todo el matching se ejecuta localmente usando el RegExp integrado de JavaScript. La herramienta no tiene componente del lado del servidor involucrado en el proceso de matching.
¿Puedo usarlo sin conexión? Sí. Una vez cargada la página, toda la herramienta funciona sin conexión a internet. La biblioteca de patrones, el motor de matching y el modo de reemplazo se ejecutan todos localmente.
¿Qué sabor de regex usa? La herramienta usa el motor nativo RegExp de JavaScript, que implementa la especificación de expresiones regulares ECMAScript. Esto soporta la mayoría de la sintaxis regex común, incluyendo lookaheads, lookbehinds (en JS moderno), grupos de captura, grupos de no captura, retrorreferencias y escapes de propiedad Unicode (con la flag u).
¿Soporta lookaheads y lookbehinds? Sí. Los lookaheads positivos (?=...), lookaheads negativos (?!...), lookbehinds positivos (?<=...) y lookbehinds negativos (?<!...) están todos soportados por el motor JavaScript usado aquí, ya que son parte de la especificación ECMAScript 2018 y están soportados por todos los navegadores modernos.
¿Puedo compartir mi patrón con alguien? Sí. La herramienta usa un estado compartible que codifica tu patrón, cadena de prueba y flags en la URL. Copia la URL de la barra de direcciones de tu navegador y compártela. Cuando el destinatario abre el enlace, una notificación toast le informa que el estado se cargó desde una URL compartida.
¿Cuántos patrones hay en la biblioteca? La biblioteca contiene 49 patrones organizados en 8 categorías: Validación (10 patrones incluyendo email, URL, teléfono, UUID, contraseña), Fechas y Horas (5 patrones), Números (5 patrones), Web y Red (6 patrones), Archivos y Rutas (5 patrones), Código (6 patrones), Texto (7 patrones) e Identificadores (5 patrones incluyendo tarjeta de crédito, SSN, IBAN, ISBN-13 e IMEI).
¿Cuál es la diferencia entre las flags s (dotAll) y m (multilínea)? Afectan cosas diferentes. La flag s hace que . coincida con saltos de línea además de todos los demás caracteres. Sin ella, . omite los caracteres de nueva línea. La flag m hace que ^ y $ coincidan al inicio y fin de cada línea en lugar del string completo. Son independientes — puedes habilitar una, ambas o ninguna.
¿Puedo usar escapes de propiedad Unicode como \p{Letter}? Sí, pero la flag u debe estar habilitada. Con u activo, patrones como \p{Lu} (letra mayúscula) y \p{Script=Latin} están soportados por navegadores modernos. Sin u, la secuencia \p se trata como una p literal.
¿Cómo hago coincidencias en múltiples líneas? Habilita la flag s (dotAll) para que . coincida con saltos de línea, luego usa [\s\S]*? o simplemente .+ con s activo. También habilita m si necesitas que ^ y $ anclen al inicio y fin de las líneas.
Herramientas relacionadas
- JSON Formatter — Formatea JSON para usar como cadenas de prueba regex
- Base64 Encoder/Decoder — Codifica/decodifica texto contra el que necesitas aplicar regex
- Diff Checker — Compara texto original y reemplazado lado a lado
Prueba el Probador Regex ahora: Probador Regex