Pruebe expresiones regulares con coincidencias en vivo, vea grupos de captura y pruebe reemplazos mientras escribe. Todo se ejecuta en su navegador, por lo que su texto permanece privado.
//g
Resultados del partido
0 matches0 groups
Ingrese un patrón de expresiones regulares y una cadena de prueba arriba para ver coincidencias.
Grupos de captura
Partido
Pos.
Partido completo
Grupos
Reemplazar
Ingrese un patrón de reemplazo para ver los resultados.
Haga clic en cualquier patrón para cargarlo en el probador con una cadena de prueba de muestra.
5 min de lectura3 pasos6 términos2 ejemplos5 preguntas frecuentesmatches = RegExp.exec(test_string) (repetido cuando se activ…
📋
Paso a paso
Cómo usar esta calculadora
3 pasos▸
1
Ingresa el Patrón y las Banderas
Ingresa tu expresión regular y activa banderas como global, sin distinción de mayúsculas y multilínea según sea necesario.
2
Pega el Texto de Prueba
Pega un texto de muestra en el área de cadena de prueba y observa cómo las coincidencias se resaltan en vivo a medida que el patrón se ejecuta.
3
Inspecciona los Grupos y Copia
Inspecciona los grupos de captura y los grupos con nombre de cada coincidencia en el panel de resultados y copia el patrón funcional a tu portapapeles.
⚡
Referencia
Fórmula y metodología
3 fórmulas▸
Ejecución de Coincidencias
matches = RegExp.exec(test_string) (repetido cuando se activa la bandera g)
Usa el motor RegExp de JavaScript integrado del navegador (ECMAScript 2018+). La bandera global devuelve todas las coincidencias; sin ella, solo la primera coincidencia.
Grupos de Captura
groups_count = match.length − 1 (cuando se encuentra una coincidencia)
El probador informa los grupos de captura indexados que devuelve el resultado de coincidencia de JavaScript, además de los grupos con nombre cuando se usa la sintaxis `(?<name>...)`. Los grupos no capturantes como `(?:...)` no se cuentan.
Operación de Reemplazo
result = test_string.replace(pattern, replacement)
Aplica el regex como una operación de reemplazo. La cadena de reemplazo admite `$1`, `$2` para grupos numerados y `$<name>` para grupos con nombre, con `$&` para la coincidencia completa.
📖
Glosario
Términos clave explicados
6 términos▸
Expresión RegularUna secuencia de caracteres que define un patrón de búsqueda, usada para coincidencia, extracción y reemplazo de cadenas. La mayoría de los lenguajes modernos admiten regex con ligeras diferencias de dialecto.
BanderaUn modificador que cambia el comportamiento del patrón: `g` para coincidencia global, `i` para sin distinción de mayúsculas, `m` para multilínea, `s` para dotAll y `u` para coincidencia consciente de Unicode.
Grupo de CapturaUn patrón encerrado entre paréntesis `(...)` que captura la subcadena coincidente para una referencia posterior. Se accede como `$1`, `$2` en reemplazos y `match[1]`, `match[2]` en el código.
Grupo con NombreUn grupo de captura con un nombre escrito como `(?<name>...)`, al que se accede como `match.groups.name` en JavaScript o `$<name>` en las cadenas de reemplazo.
AnclaUna aserción de ancho cero que coincide con una posición en lugar de un carácter. Las anclas comunes son `^` (inicio de cadena/línea), `$` (fin de cadena/línea), `\b` (límite de palabra) y `\B` (no-límite de palabra).
Retroceso (Backtracking)El proceso del motor de regex de probar trayectorias de coincidencia alternativas cuando la trayectoria actual falla. El retroceso excesivo causa "retroceso catastrófico".
👥
Escenarios
Ejemplos del mundo real
2 ejemplos▸
📧
Desarrollador — Validación de Correo
Un desarrollador depurando un regex de validación de formularios para direcciones de correo que debe aceptar formatos estándar pero rechazar entradas obviamente malformadas.
El patrón coincide con `[email protected]` y `[email protected]`, y rechaza `bad..email@`. El resaltado en vivo confirma que el regex maneja los casos límite comunes (etiquetas con signo más, subdominios) mientras detecta entradas malformadas.
📝
Analista de Datos — Extraer Fechas
Un analista de datos extrayendo fechas en formato ISO de texto de registro no estructurado usando grupos de captura con nombre para producir una salida estructurada.
Patrón (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})Banderas gCadena de prueba Log entry from 2024-03-15 and another from 2024-11-02...
Encuentra dos coincidencias, y cada una expone los grupos con nombre `year`, `month`, `day`. El analista copia el patrón en un script de Python o JavaScript para ejecutarlo sobre un archivo de registro completo, produciendo una lista estructurada de registros de fechas lista para análisis de series temporales.
🔗
Referencia
Citar esta calculadora
APA y MLA▸
Usa cualquiera de estos formatos para citar esta calculadora en un trabajo o informe.
Las expresiones regulares son una de las herramientas más poderosas y más odiadas en programación — poderosas porque condensan una lógica compleja de coincidencia de cadenas en unos pocos caracteres, odiadas porque esos caracteres son famosamente ilegibles y propensos a errores. Dominar regex rinde frutos en todos los lenguajes y en casi todos los roles técnicos: búsqueda y reemplazo en editores, validación de formularios, análisis de registros, extracción de datos, reglas de enrutamiento y manipulación de texto en la línea de comandos con herramientas como grep y sed. Las secciones a continuación cubren la sintaxis central que todo desarrollador debería conocer, los patrones comunes que aparecen en el trabajo real y la disciplina de prueba que separa el regex que funciona del que da miedo.
La Sintaxis Central Que Todo Desarrollador Debe Conocer
▸
La sintaxis de regex parece intimidante pero los elementos centrales son finitos y vale la pena memorizarlos. Las clases de caracteres son la base: `\d` coincide con cualquier dígito, `\w` coincide con cualquier carácter de palabra (letras, dígitos, guion bajo), `\s` coincide con cualquier espacio en blanco, y sus versiones en mayúscula (`\D`, `\W`, `\S`) coinciden con lo inverso. Los corchetes definen clases de caracteres personalizadas: `[abc]` coincide con cualquiera de esos tres caracteres, `[a-z]` coincide con cualquier letra minúscula, `[^0-9]` coincide con cualquier cosa excepto dígitos. Los cuantificadores especifican cuántas veces debe coincidir un patrón: `*` es cero o más, `+` es uno o más, `?` es cero o uno (opcional), `{3}` es exactamente 3, `{3,5}` es de 3 a 5, `{3,}` es 3 o más. Los cuantificadores son codiciosos por defecto, coincidiendo con todo lo posible; agregar `?` los hace perezosos (`*?`, `+?`). Las anclas coinciden con posiciones en lugar de caracteres: `^` es inicio de cadena (o de línea con la bandera `m`), `$` es fin de cadena, `\b` es un límite de palabra. La agrupación usa paréntesis `(...)` tanto para agrupar operadores como para capturar el texto coincidente para una referencia posterior. Estos bloques de construcción centrales cubren el 90% de las necesidades prácticas de regex, y la mayor parte del misterio del regex se disuelve una vez que internalizas este vocabulario. Todo lo demás son variaciones sobre estos temas.
Patrones Comunes Que Aparecen en el Trabajo Real
▸
Un puñado de patrones aparecen con tanta frecuencia en los proyectos que vale la pena memorizarlos como plantillas. Dirección de correo electrónico (validación flexible): `/^[\w.+-]+@[\w-]+\.[\w.-]+$/`: lo suficientemente buena para filtrar formularios, aunque la expresión regular de correo electrónico formalmente correcta es increíblemente larga para la escritura humana. Coincidencia de URL: `/https?:\/\/[^\s]+/g`: está bien para extraer URL de texto, aunque coincide con la puntuación final que querrás recortar. Números de teléfono de EE. UU.: `/\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}/`: maneja paréntesis, guiones y espacios como separadores opcionales. Direcciones IP (IPv4): `/\b(?:\d{1,3}\.){3}\d{1,3}\b/`: simple pero no rechaza 999.999.999.999 (eso requiere una fea lógica de restricción de valores). Fechas ISO: `/\d{4}-\d{2}-\d{2}/` con grupos con nombre opcionales `(?\d{4})-(?\d{2})-(?\d{2})` para extracción. Colores hexadecimales: `/#[0-9a-f]{3,8}\b/i`. Número de tarjeta de crédito (suelto): `/\b\d{13,19}\b/`: solo para verificación de formato, no de validez. UUID: `/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i`. La biblioteca de patrones en la mayoría de los sitios de expresiones regulares amplía este conjunto sustancialmente, y copiar un patrón probado en batalla casi siempre es mejor que escribir uno propio para formatos comunes. Asigne un nombre a sus grupos de captura cuando necesite extraer datos: la sintaxis `(?...)` hace que el código resultante sea mucho más legible que `match[1]` / `match[2]`.
Disciplina de Prueba: Cómo Escribir Regex Que Realmente Funcione
▸
La diferencia entre el regex que funciona de forma confiable y el que rompe producción es la disciplina de prueba. Cuatro prácticas distinguen consistentemente ambos. Primero, prueba siempre con casos positivos (entradas que deberían coincidir) Y casos negativos (entradas que no deberían coincidir). Es fácil crear un patrón que coincida con todo lo que quieres, solo para descubrir que también coincide con entradas que no querías. Un conjunto de prueba con 10 positivos y 10 negativos detecta la mayoría de los problemas. Segundo, prueba específicamente contra casos límite: cadena vacía, un solo carácter, cadenas muy largas, caracteres Unicode, cadenas con solo espacios en blanco, cadenas con saltos de línea, cadenas con caracteres especiales de regex. Los patrones de regex tienen un comportamiento sorprendente en torno a estos límites, y las entradas de producción eventualmente incluirán todos ellos. Tercero, cuídate del retroceso catastrófico. Un patrón como `(a+)+b` probado contra `aaaaaaaaaaaaaaaaX` puede tomar tiempo exponencial porque el motor prueba cada posible agrupación de las `a`. Prueba cualquier patrón complejo contra entradas de aspecto malicioso (cadenas largas de caracteres repetidos) y observa el tiempo de ejecución. Los ataques ReDoS (Denegación de Servicio por Expresión Regular) explotan exactamente esta vulnerabilidad en patrones mal diseñados usados en la validación de entradas. Cuarto, usa un probador de regex real (este, o un complemento de editor) durante el desarrollo en lugar de prueba y error en el código de producción — la retroalimentación visual de ver las coincidencias resaltarse en vivo mientras escribes produce patrones funcionales de 5 a 10 veces más rápido que depurar pruebas fallidas después del hecho.
❓
Preguntas
Preguntas frecuentes
5 preguntas▸
¿El Probador de Regex es gratuito?+
Sí — el Probador de Regex es completamente gratuito sin necesidad de registro. Toda la coincidencia de patrones se ejecuta localmente en tu navegador usando el motor RegExp de JavaScript integrado, por lo que ninguna entrada de prueba sale de tu dispositivo.
¿Qué dialecto de regex usa este probador?+
Este probador usa el dialecto de regex de JavaScript (ECMAScript 2018+), que es cercano pero no idéntico a PCRE, al módulo `re` de Python o al regex de Java. Funciones como los grupos con nombre (`(?<name>...)`) y las miradas atrás (lookbehind) funcionan, pero las funciones específicas de PCRE como los patrones recursivos y los cuantificadores posesivos no son compatibles.
¿Puedo guardar o compartir mi regex?+
Sí — haz clic en Compartir para generar una URL con tu patrón, banderas y cadena de prueba precargados para compartir con compañeros de equipo. Haz clic en Copiar para poner solo el patrón en tu portapapeles para pegarlo en el código. Ambas operaciones ocurren localmente sin ningún viaje al servidor.
¿El Probador de Regex funciona en móviles?+
Sí — el probador es totalmente adaptable y funciona en teléfonos, tabletas y computadoras de escritorio. Los resultados se actualizan al instante a medida que escribes, aunque los patrones más largos son más fáciles de redactar en un teclado físico con acceso completo a los caracteres especiales de regex.
¿Cómo evito el retroceso catastrófico?+
Evita cuantificadores anidados como `(a+)+`, simplifica las alternativas ambiguas y prueba cualquier patrón complejo contra cadenas largas de caracteres repetidos para detectar ralentizaciones. Si un patrón tarda más de unos cientos de milisegundos en una entrada realista, reescríbelo para que sea más determinista.
📄
Guardar y compartir
Obtén un PDF con tus resultados
Descarga al instante un PDF de una página con tus números. Añade tu correo para recibir además nuestros consejos ocasionales sobre calculadoras — sin spam, puedes darte de baja cuando quieras. Privacidad.
🧭
Siguientes pasos
Sigue explorando
Calculadoras relacionadas
Guías y artículos
o déjela en blanco para eliminar coincidencias).\u003c/p>","hash":"2f5927d8"},"calc-locale.bulk.tools.regex-tester.981f392d":{"es":"\u003cp class=\"empty-state\">Reemplazar error: ","hash":"981f392d"},"calc-locale.bulk.tools.regex-tester.55950aee":{"es":"\u003c/p>","hash":"55950aee"},"calc-locale.bulk.tools.regex-tester.84683540":{"es":"nada que copiar","hash":"84683540"},"calc-locale.bulk.tools.regex-tester.5f83d2d3":{"es":"Primero ejecute un reemplazo.","hash":"5f83d2d3"},"calc-locale.bulk.tools.regex-tester.4c8421ac":{"es":"¡Copiado!","hash":"4c8421ac"},"calc-locale.bulk.tools.regex-tester.3c2d7a53":{"es":"Reemplazar el resultado copiado al portapapeles.","hash":"3c2d7a53"},"calc-locale.bulk.tools.regex-tester.a1f1d2e1":{"es":"Primero ingrese un patrón de expresiones regulares.","hash":"a1f1d2e1"},"calc-locale.bulk.tools.regex-tester.20a9abb3":{"es":"Regex copiada al portapapeles.","hash":"20a9abb3"},"calc-locale.bulk.tools.regex-tester.bac35c2c":{"es":"Clases de personajes","hash":"bac35c2c"},"calc-locale.bulk.tools.regex-tester.fb46d5e5":{"es":"Anclas","hash":"fb46d5e5"},"calc-locale.bulk.tools.regex-tester.efa363b6":{"es":"Cuantificadores","hash":"efa363b6"},"calc-locale.bulk.tools.regex-tester.f11969bf":{"es":"Grupos y Referencias","hash":"f11969bf"},"calc-locale.bulk.tools.regex-tester.f8d1d8cb":{"es":"Mirar a tu alrededor","hash":"f8d1d8cb"},"calc-locale.bulk.tools.regex-tester.4222ebcc":{"es":"Banderas","hash":"4222ebcc"},"calc-locale.bulk.tools.regex-tester.1dbfab74":{"es":"Personajes especiales","hash":"1dbfab74"},"calc-locale.bulk.tools.regex-tester.e042c08a":{"es":"Patrón cargado","hash":"e042c08a"},"calc-locale.bulk.tools.regex-tester.4faef743":{"es":"está listo para probar.","hash":"4faef743"},"calc-locale.audit.regex-tester.f1f487f3":{"en":"Email Address","es":"Dirección de correo electrónico","hash":"f1f487f3"},"calc-locale.audit.regex-tester.9541fecb":{"en":"URL (HTTP/HTTPS)","es":"URL (HTTP/HTTPS)","hash":"9541fecb"},"calc-locale.audit.regex-tester.933236c7":{"en":"Phone Number (US)","es":"Número de teléfono (EE. UU.)","hash":"933236c7"},"calc-locale.audit.regex-tester.c2bfac12":{"en":"IPv4 Address","es":"Dirección IPv4","hash":"c2bfac12"},"calc-locale.audit.regex-tester.73fd4e20":{"en":"Date (YYYY-MM-DD)","es":"Fecha (AAAA-MM-DD)","hash":"73fd4e20"},"calc-locale.audit.regex-tester.1f67418a":{"en":"Hex Color Code","es":"Código de color hexadecimal","hash":"1f67418a"},"calc-locale.audit.regex-tester.20a14859":{"en":"HTML Tags","es":"Etiquetas HTML","hash":"20a14859"},"calc-locale.audit.regex-tester.420a5a33":{"en":"Credit Card Number","es":"Número de Tarjeta de Crédito","hash":"420a5a33"},"calc-locale.audit.regex-tester.1c08d4d9":{"en":"Username","es":"Nombre de usuario","hash":"1c08d4d9"},"calc-locale.audit.regex-tester.33506d33":{"en":"Strong Password","es":"Contraseña segura","hash":"33506d33"},"calc-locale.audit.regex-tester.fa398fe0":{"en":"Whitespace Trimmer","es":"Recortador de espacios en blanco","hash":"fa398fe0"},"calc-locale.audit.regex-tester.75bac07f":{"en":"Duplicate Words","es":"Palabras duplicadas","hash":"75bac07f"}});