Ir al contenido principal

Regex Tester

Prueba y depura tus expresiones regulares en línea

¿Tu regex no coincide como esperabas? Pega tu patrón y tu texto a continuación. Las coincidencias, grupos de captura y posiciones se muestran en segundos.

Opciones

Motor RE2 seguro

RE2 garantiza un tiempo de ejecución lineal. Sin riesgo de ReDoS, incluso con patrones complejos.

Grupos de captura detallados

Grupos nombrados e indexados mostrados con sus posiciones byte exactas en el texto fuente.

4 flags configurables

Sin distinción de mayúsculas, multilínea, dot-all y non-greedy. Se activan con un clic antes del test.

Resultados instantáneos

Hasta 1 000 coincidencias analizadas en tiempo real. Posiciones byte precisas para cada match.

UTF-8 nativo

El patrón se evalúa sobre texto UTF-8. Acentos, emojis y caracteres especiales están soportados.

¿Por qué probar tus regex en línea?

Una expresión regular incorrecta en producción genera bugs silenciosos. Los errores de sintaxis pasan desapercibidos hasta que un edge case los expone. Probar antes de desplegar elimina este riesgo.

Tres casos de uso principales:

  • Validar un patrón antes de integrarlo - Confirma que tu regex coincide solo con lo esperado, sin falsos positivos
  • Depurar un patrón existente - Identifica por qué una regex falla al capturar las subcadenas correctas
  • Probar la compatibilidad RE2 - Verifica que tu patrón funciona con el motor RE2 de Go antes del despliegue

Cómo usar el regex tester en 3 pasos

Paso 1: Introducir el patrón

Escribe tu expresión regular en el campo dedicado. Ejemplo para extraer un dominio SPF:

include:(?P<domain>[a-z0-9._-]+)

Paso 2: Pegar el texto de prueba

Pega el texto contra el que quieras probar tu regex:

v=spf1 include:_spf.captaindns.com include:spf.protection.outlook.com ~all

Activa los flags según necesidad: sin distinción de mayúsculas, multilínea, dot-all o non-greedy.

Paso 3: Leer los resultados

Cada coincidencia muestra tres datos: su posición byte, el contenido coincidente y los grupos de captura. Los grupos nombrados se identifican por su etiqueta.


¿Qué es una expresión regular?

Una expresión regular (regex) es un patrón que describe un conjunto de cadenas. Permite buscar, validar o extraer texto según reglas formales.

Componentes fundamentales:

ElementoSintaxisEjemploResultado
Carácter literalaabc en "abcdef"coincide con "abc"
Clase de caracteres[a-z][0-9]+ en "port 443"coincide con "443"
Cuantificador+, *, ?a+ en "aab"coincide con "aa"
Grupo de captura(...)(abc) en "xabcx"captura "abc"
Ancla^, $^v=spf1coincide al inicio de línea
Alternativaa|bcat|dog en "my cat"coincide con "cat"

Ejemplo concreto con grupos nombrados:

(?P<protocol>https?)://(?P<domain>[a-z0-9.-]+)

Aplicado a https://captaindns.com/tools:

  • Grupo protocol: https
  • Grupo domain: captaindns.com

Sintaxis RE2 vs PCRE: las diferencias

RE2 es el motor regex de Go y Google. PCRE es el estándar en PHP, JavaScript y Python. Sus diferencias impactan directamente la portabilidad de tus patrones.

FuncionalidadRE2PCRE
Tiempo de ejecuciónLineal garantizado O(n)Exponencial posible
Lookahead/lookbehindNo soportadoSoportado
Backreferences (\1)No soportadoSoportado
Cuantificadores posesivosNo soportadoSoportado
Grupos nombrados(?P<nombre>...)(?P<nombre>...) o (?<nombre>...)
Flag non-greedy global(?U)No estándar
UnicodeNativo (UTF-8)Mediante flag u

La garantía de tiempo lineal elimina los ataques ReDoS. Por eso RE2 es el estándar para servicios web expuestos a entradas no controladas.


Casos de uso reales

Validar un registro SPF

Situación: Tu registro SPF contiene varios mecanismos include y necesitas verificar cada dominio.

Diagnóstico: Prueba include:([a-z0-9._-]+) contra el valor de tu registro TXT. La herramienta lista cada dominio con su posición byte exacta.

Acción: Compara los dominios extraídos con tu lista autorizada. Corrige cualquier include faltante o erróneo con el Inspector SPF.

Extraer direcciones de email de un texto

Situación: Un archivo de configuración contiene direcciones de correo mezcladas con otros datos.

Diagnóstico: Usa [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} con el flag sin distinción de mayúsculas. Cada email aparece como coincidencia independiente.

Acción: Exporta las direcciones extraídas. Verifica su formato y elimina duplicados antes de integrarlas en tu sistema.

Depurar un patrón de log parsing

Situación: Tu parser de logs no captura el timestamp correctamente. Los grupos devuelven valores truncados.

Diagnóstico: Prueba con grupos nombrados: (?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}). Verifica que cada grupo capture la subcadena completa.

Acción: Ajusta los cuantificadores o clases de caracteres. Repite el test hasta que cada grupo devuelva el valor esperado.


Errores de sintaxis comunes

ErrorCausaCorrección
error parsing regexpParéntesis sin cerrar o cuantificador sin objetivoVerifica los paréntesis y corchetes
invalid escape sequenceSecuencia de escape no reconocida en RE2Usa \\ para un backslash literal
invalid named captureSintaxis incorrecta del grupo nombradoUsa (?P<nombre>...), no (?<nombre>...)
invalid repeat countCuantificador fuera de límitesReduce el valor del cuantificador
Sin resultadosPatrón demasiado restrictivo o flag faltanteActiva sin distinción de mayúsculas o dot-all

❓ FAQ - Preguntas frecuentes

P: ¿Por qué mi regex no encuentra ninguna coincidencia?

R: Verifica la sintaxis RE2. Los lookahead/lookbehind y backreferences no están soportados. Activa el flag "sin distinción de mayúsculas" si tu texto contiene mayúsculas inesperadas. Verifica también los caracteres especiales sin escapar.


P: ¿Qué es la sintaxis RE2?

R: RE2 es el motor regex de Go. Garantiza un tiempo de ejecución lineal respecto al tamaño de la entrada. PCRE puede ser vulnerable a ataques ReDoS; RE2 no.


P: ¿Qué flags regex están disponibles?

R: Cuatro flags: sin distinción de mayúsculas (i), multilínea (m), dot coincide con newline (s) y non-greedy (U). Cada flag modifica el comportamiento del motor para todo el patrón.


P: ¿Cuál es el límite de tamaño del texto?

R: El patrón acepta hasta 10 KB. El texto de prueba acepta hasta 1 MB. El número máximo de coincidencias devueltas es 1 000.


P: ¿Qué es un grupo de captura nombrado?

R: Un grupo nombrado usa la sintaxis (?P<nombre>...) en RE2. Extrae una subcadena identificada por nombre en lugar de índice numérico. Resulta indispensable en patrones con varios grupos.


P: ¿RE2 es compatible con las regex de JavaScript?

R: Parcialmente. RE2 soporta clases de caracteres, cuantificadores y grupos. No soporta lookahead, lookbehind, backreferences ni cuantificadores posesivos.


P: ¿Los datos se conservan?

R: No. Tu patrón y tu texto se envían a la API CaptainDNS para procesamiento. Se eliminan inmediatamente después. Ningún contenido se almacena ni se registra.


Herramientas complementarias

HerramientaUtilidad
Hash GeneratorCalcula el hash de un texto coincidente con tu regex
Codificador/decodificador Base64Decodifica un texto Base64 antes de probarlo con una regex
Codificador/decodificador URLDecodifica URLs codificadas antes de la extracción regex
Convertidor de mayúsculasNormaliza las mayúsculas de un texto antes de probarlo
Inspector SPFVerifica los registros SPF que validas por regex

Recursos útiles


Compromiso de privacidad

Tu patrón y tu texto se envían a la API CaptainDNS únicamente para ejecutar el test regex. Ningún contenido se conserva tras el procesamiento. Solo se registran métricas técnicas anónimas: tamaño del patrón, número de coincidencias y duración de la ejecución.