Qué es una expresión regular
Una expresión regular (regex) es un patrón que describe un conjunto de cadenas de texto. Sirve para validar formularios (un correo, un DNI, un número de celular), buscar y reemplazar en editores, extraer datos de archivos de registro o limpiar datos. Nacieron de la teoría de lenguajes formales: Stephen Kleene las formalizó en los años 50 y Ken Thompson las llevó a los editores de texto de Unix.
Los símbolos más usados
\ddígito,\wletra, dígito o guion bajo,\sespacio,.cualquier carácter.*0 o más,+1 o más,?opcional,{n,m}entre n y m veces.[abc]uno de esos caracteres,[^abc]ninguno de ellos,a|buna cosa u otra.( )grupo de captura,^inicio,$fin,\blímite de palabra.- Banderas:
gtodas las coincidencias,isin distinguir mayúsculas,mmultilínea,sel punto incluye saltos de línea.
Ejemplo resuelto: fechas dd/mm/aaaa
El patrón \b(0?[1-9]|[12]\d|3[01])/(0?[1-9]|1[0-2])/(\d{4})\b acepta días del 1 al 31, meses del 1 al 12 y años de cuatro cifras, y captura cada parte en un grupo. En el texto de ejemplo encuentra 15/11/2026 y 3/2/2027, pero rechaza 32/13/2026. Ojo: no sabe que febrero no tiene 31 días; esa validación se hace después en el código.
Errores comunes
- Olvidar escapar el punto:
.coincide con cualquier carácter; para un punto literal se escribe\.. - Cuantificadores anidados como
(a+)+, que pueden provocar un retroceso catastrófico y congelar el programa (la herramienta corta la búsqueda a los 800 ms). - Intentar validar todo con una regex: los correos o las fechas reales tienen reglas que conviene comprobar en código.
Preguntas frecuentes
¿Las regex son iguales en todos los lenguajes?
La base es común, pero hay diferencias de sintaxis. Esta herramienta usa el motor de JavaScript, muy parecido al de Python y Java.
¿Cómo valido un celular peruano?
Un patrón simple es \b9\d{8}\b: nueve dígitos que empiezan por 9.
¿Dónde las uso en código?
En Python con el módulo re y en JavaScript con RegExp; pruébalas en el Code Lab.
Herramienta educativa. Los resultados se calculan en tu navegador; ningún dato se envía a un servidor.