DocumentosImágenesMediaHerramientas PDF

Probador de Regex

Prueba expresiones regulares en tiempo real con resaltado.

//

2 coincidencias encontradas

#1hello@convertir.ai@14
#2support@example.com@36
Procesado en tu navegador

Depura tus regex al instante

Tiempo real

Las coincidencias se resaltan mientras escribes. Sin recargar, sin botones de envío.

Grupos de captura

Visualiza cada grupo capturado por separado con su índice y valor.

Todos los flags

Soporte completo para flags g, i, m, s del motor ECMAScript/JavaScript.

Sin envío de datos

Tu texto de prueba nunca sale de tu navegador. Ideal para datos sensibles.

Tres pasos, sin complicaciones

1

Introduce tu patrón regex

Escribe tu expresión regular en el campo de patrón. Elige los flags: g, i, m, s.

2

Pega el texto de prueba

Introduce el texto sobre el que quieres probar el patrón. Las coincidencias se resaltan al instante.

3

Inspecciona los resultados

Revisa las coincidencias completas y los grupos de captura. Ajusta el patrón hasta conseguir el resultado deseado.

¿Tienes dudas?

Una expresión regular (regex o regexp) es una secuencia de caracteres que define un patrón de búsqueda en texto. Son un lenguaje formal derivado de la teoría de autómatas y lenguajes formales. Con regex puedes buscar, validar, extraer y reemplazar texto con patrones complejos en una sola línea de código. Se usan en todos los lenguajes de programación, editores de texto, bases de datos y herramientas de línea de comandos.

Los patrones más usados incluyen: email (^[\w.+-]+@[\w-]+\.[\w.]+$), URL (https?://[\S]+), teléfono (\+?[\d\s\-()]{7,15}), código postal (/^\d{5}(-\d{4})?$/), fecha ISO (\d{4}-\d{2}-\d{2}), IPv4 (\b(?:\d{1,3}\.){3}\d{1,3}\b) y solo letras/números ([a-zA-Z0-9]+). Estos patrones son puntos de partida — en producción siempre deben adaptarse al formato exacto esperado.

Los flags modifican el comportamiento del patrón: g (global) encuentra todas las coincidencias en lugar de detenerse en la primera; i (insensitive) ignora mayúsculas/minúsculas; m (multiline) hace que ^ y $ coincidan con el inicio y fin de cada línea, no sólo del texto completo; s (dotAll) hace que el punto (.) coincida también con saltos de línea, que por defecto no incluye. Los flags se pueden combinar: /patrón/gim.

Los grupos de captura, definidos con paréntesis (), permiten extraer partes específicas de una coincidencia. Por ejemplo, /(\d{4})-(\d{2})-(\d{2})/ sobre '2024-03-15' captura tres grupos: año, mes y día. Los grupos nombrados (?<nombre>patrón) facilitan el acceso por nombre en lugar de por índice numérico. Los grupos no capturantes (?:patrón) agrupan sin capturar, útiles para aplicar cuantificadores sin crear un grupo.

Los lookahead y lookbehind son aserciones de posición que verifican lo que viene antes o después de una posición, sin consumir caracteres. Lookahead positivo (?=patrón): coincide si va seguido de patrón. Lookahead negativo (?!patrón): coincide si NO va seguido de patrón. Lookbehind positivo (?<=patrón): coincide si está precedido de patrón. Lookbehind negativo (?<!patrón): coincide si NO está precedido de patrón. Por ejemplo, \d+(?= euros) extrae números seguidos de ' euros' sin incluir la palabra.

Historia de las expresiones regulares: de Kleene a PCRE

Las expresiones regulares fueron formuladas matemáticamente por Stephen Kleene en 1951 en su paper 'Representation of Events in Nerve Nets and Finite Automata', que introdujo la notación algebraica para lenguajes regulares. El operador de cierre de Kleene (*) lleva su nombre. La primera implementación práctica en software fue la del editor de texto qed de Ken Thompson en 1968 para CTSS (Compatible Time-Sharing System). Thompson implementó regex con una construcción eficiente de autómatas finitos no deterministas (NFA) que garantizaba complejidad O(n) en el tamaño del texto.

PCRE (Perl Compatible Regular Expressions) fue creado por Philip Hazel en 1997 como biblioteca C que reimplementa la sintaxis de expresiones regulares de Perl 5. PCRE añadió características no presentes en los motores clásicos: lookahead/lookbehind, grupos nombrados, referencias hacia atrás (backreferences) y recursión. PCRE se convirtió en el motor de regex de facto para PHP, Apache, nginx, R, y cientos de otras aplicaciones. ECMAScript (JavaScript) implementa su propio motor con semántica similar pero diferente en algunos detalles como el soporte de lookbehind (añadido en ES2018).

En el desarrollo web moderno, las regex son indispensables para validación de formularios en el navegador, extracción de datos en scraping, transformaciones en build tools como webpack y vite, reglas de routing en frameworks como Express y Next.js, y búsqueda avanzada en editores como VS Code. La diferencia entre los sabores PCRE y ECMAScript afecta principalmente a: lookbehind de longitud variable (PCRE lo soporta, ECMAScript tiene restricciones), referencias condicionales y recursión (solo PCRE) y algunas secuencias de escape.