Explicador de expresiones regulares
WebTodo se ejecuta en tu navegador: no se sube nada
Desglosa una expresión regular parte por parte y añade qué coincide de verdad cada trozo. Al leer el patrón de otra persona lo difícil rara vez es la sintaxis: es que nadie te dice para qué sirve cada pieza — esa línea ilegible suele ser tres clases de caracteres y dos aserciones. Esto lo lee un analizador, no lo «explica un modelo». Una expresión regular tiene un único significado, y cuando un modelo se equivoca no tienes forma de comprobarlo: dirá «`*` significa una o más» con el mismo tono seguro, y si reescribes el código con esa explicación irás a peor. Un analizador que se equivoca falla un test (este módulo tiene 44 aserciones); un modelo que se equivoca, no. Hay tres cosas que se dicen a propósito: · Los cuantificadores van pegados a lo que modifican. En `ab*` el `*` se aplica a `b`, no a `ab`, así que la salida muestra dos líneas — `a` y `b*` — en vez de tres símbolos sueltos, que ocultarían justo ese hecho · Los metacaracteres dentro de una clase no se expanden. El `.` y el `*` de `[.*]` son esos dos caracteres, no «cualquier carácter» y «un cuantificador». Es la mala lectura más común de las regex, así que se dice en lugar de expandirse · Un cuantificador sin nada delante se señala. `*abc` es un error de sintaxis en casi todos los motores; tomarlo como un `*` literal te dejaría creyendo que coincide con uno ⚠️ No juzga si el patrón es correcto ni si es rápido — para eso ejecútalo de verdad con el probador de regex. Aquí solo se responde «qué dice».
Funciones
- Enumera cada pieza con lo que coincide, indentada por profundidad de paréntesis
- Los cuantificadores se quedan con el elemento que modifican (`a*` es una línea, no dos)
- Las clases de caracteres en palabras: `[a-z0-9_]` lista cada rango y cada carácter; también las negadas
- ⚠️ Los metacaracteres dentro de una clase no se expanden — los de `[.*]` son solo caracteres
- Grupos por tipo: de captura, con nombre, sin captura, lookahead y lookbehind
- Cubre clases abreviadas (`\d` `\w` `\s` `\b`), caracteres de control, retrorreferencias (numéricas y con nombre) y propiedades Unicode (`\p{…}`)
- Explica cada modificador (`g` `i` `m` `s` `u` `y` `d` `v`)
- ⚠️ Paréntesis sin cerrar, clases sin cerrar y cuantificadores huérfanos se reportan, en vez de explicarse por encima
- Acepta la forma habitual `/patrón/modificadores`, o solo el patrón
- Sin red y sin modelo: cada frase sale de la estructura del propio patrón
Cómo se usa
- Pega una regex, con o sin los delimitadores `/`
- Lee el desglose de abajo; la indentación muestra el anidamiento
- Los modificadores, si los hay, tienen su propia sección al final
- Para probar una coincidencia de verdad, usa el probador de regex
Preguntas frecuentes
- ¿Por qué no dejar que una IA explique las regex?
- Porque no puedes comprobar su explicación. Una regex tiene un único significado, y un modelo que se equivoca suena igual de seguro: «`*` significa una o más» es justo lo que alguien que aún no lo sabe no puede detectar, y actuar en consecuencia empeora el código. Un analizador es distinto: lee un carácter y emite una frase, un fallo pone un test en rojo al instante (44 aserciones vigilan este módulo) y el mismo patrón recibe la misma explicación en cualquier sitio. No hay motivo para encargar a un modelo un trabajo que un explicador ya hace.
- En `ab*`, ¿el asterisco se aplica a b o a ab?
- A `b`. Un cuantificador se aplica al único elemento que tiene justo delante: `ab*` coincide con una `a` seguida de cero o más `b`. Para repetir la pareja hay que escribir `(ab)*`. Es el error más común de quien empieza, así que la salida pone el cuantificador en la misma línea que lo que modifica (`a` en una línea, `b*` en la siguiente) en vez de partirlo en los símbolos `a`, `b`, `*`, que ocultarían quién modifica a quién.
- ¿Qué significan el punto y el asterisco dentro de `[.*]`?
- Son esos dos caracteres sin más. Dentro de una clase de caracteres, `.` ya no es «cualquier carácter» y `*` ya no es un cuantificador; son miembros normales, y `[.*]` coincide con un punto o un asterisco. Es una de las malas lecturas más frecuentes, por eso aquí no se expanden a propósito y se dice claramente que son literales.
- ¿En qué se diferencia del probador de regex?
- El reparto es limpio: este responde «qué significa», aquel responde «con qué coincide de verdad». Usa este para leer el patrón de otra persona o revisar tu propia lógica, y aquel para saber si un texto concreto coincide y qué capturaron los grupos (también previsualiza reemplazos y avisa del riesgo de ReDoS). Ninguno sustituye al otro: la explicación más clara no reemplaza a una coincidencia real, y un resultado no explica el porqué.
Herramientas relacionadas
Probador de regex
TextoPrueba expresiones regulares en el navegador: resaltado en vivo, grupos de captura, vista previa de sustitución y código para cinco lenguajes.
Código de regex
WebConvierte una expresión regular en fragmentos para JavaScript, Python, Java, Go, PHP y C#, con cuántas barras invertidas pide de verdad cada uno.
Resaltado de código
WebColorea código con sintaxis y cópialo con el color intacto a PowerPoint, Word o correo; o exporta HTML con estilos en línea para tu blog. 26 lenguajes.
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Analizador de UA
WebAnaliza un User-Agent: navegador, versión, sistema, tipo de dispositivo y motor, con las reglas que coinciden. Solo coincidencia de patrones.
Códigos de estado HTTP
WebConsulta un código de estado HTTP: significado, clase 1xx–5xx, usos típicos y trampas habituales. También busca por palabra clave. Todo local.