¿Qué es una expresión regular (Regex)?
Secuencia de caracteres que conforma un patrón de búsqueda formal para validar cadenas de texto, extraer subcadenas o sustituir caracteres de forma masiva.
Micro-Soluciones Tecnológicas
Escribe una expresión regular y ve las coincidencias, la explicación y el código listo para copiar, todo en vivo.
Texto de prueba
Explicación paso a paso
Escribe una expresión regular para empezar.
Código listo para copiar
Elige tu lenguaje y copia el fragmento.
const regex = //g;
const isMatch = regex.test(input);
const allMatches = [...input.matchAll(new RegExp(regex.source, regex.flags.includes("g") ? regex.flags : regex.flags + "g"))];DFA vs NFA, mitigación de ReDoS, grupos de captura y aserciones Lookaround.
JavaScript, Python y PHP usan motores NFA tradicionales dirigidos por expresiones. Esto permite funciones avanzadas como retroreferencias y lookarounds, pero introduce el riesgo de backtracking ante patrones maliciosos.
Ocurre cuando cuantificadores anidados (ej. `(a+)+$`) no coinciden con el final de una cadena larga. El motor intenta miles de millones de combinaciones recursivas, bloqueando el hilo de ejecución de Node.js o el navegador.
Usar `(?:...)` en lugar de `(...)` agrupa subexpresiones sin reservar memoria ni generar índices en el array de coincidencias, acelerando las búsquedas en textos masivos y reduciendo la recolección de basura.
Los operadores `(?=...)`, `(?!...)`, `(?<=...)` y `(?<!...)` verifican si un texto precede o sigue a una coincidencia sin consumir caracteres, ideales para validar contraseñas complejas o aislar montos de moneda.
Diagnóstico y soluciones técnicas para ReDoS, bandera global en JS, escapes y codicia.
La famosa cita de Zawinski, el origen de 'grep' en Unix y las raíces neuronales de 1951.
"Algunas personas, cuando se enfrentan a un problema, piensan: 'Ya sé, usaré expresiones regulares'. Ahora tienen dos problemas." Se convirtió en la broma más famosa de la ingeniería de software.
El matemático Stephen Cole Kleene inventó el álgebra de eventos regulares para modelar el comportamiento de las redes de neuronas del cerebro humano, dando origen a la teoría de autómatas finitos.
En 1968, Ken Thompson implementó regex en el editor `ed` de Unix. El comando para buscar globalmente un patrón e imprimirlo era `g/re/p` (Global Regular Expression Print), que luego se convirtió en el programa independiente `grep`.
Escrita por Philip Hazel en la Universidad de Cambridge en 1997, PCRE (Perl Compatible Regular Expressions) está compilada dentro del servidor web Apache, Nginx, PHP, R, Postfix y miles de herramientas corporativas.
Aprende los conceptos fundamentales, protocolos y términos técnicos de esta herramienta.
Secuencia de caracteres que conforma un patrón de búsqueda formal para validar cadenas de texto, extraer subcadenas o sustituir caracteres de forma masiva.
Vulnerabilidad algorítmica donde cuantificadores anidados ambiguos provocan que el motor explore trillones de combinaciones exponenciales, congelando la CPU.
Subpatrones delimitados por paréntesis `(...)` que aíslan segmentos coincidentes específicos para su posterior extracción o reutilización en variables.
Condiciones de verificación que exigen que un texto esté precedido o seguido por otro patrón sin incluir esos caracteres en la coincidencia final del texto.