Lección 1

¿Qué es una expresión regular?

Patrones como programas de búsqueda y dónde aparece el regex en el desarrollo.

Una expresión regular (regex) es un lenguaje compacto para describir patrones de texto. En lugar de buscar una cadena exacta como error, buscas una forma: dígitos, valores entre comillas, tokens tipo email o líneas de log que encajan con una plantilla.

Patrones, no texto plano

Piensa en regex como un programa pequeño ejecutado por un motor de regex:

  1. Proporcionas un patrón (el regex)
  2. Proporcionas texto de entrada (una cadena, extracto de archivo o buffer)
  3. El motor devuelve coincidencias — subcadenas que encajan con el patrón — y opcionalmente grupos de captura

Intuición de ejemplo: \d{4}-\d{2}-\d{2} describe «cuatro dígitos, guion, dos dígitos, guion, dos dígitos» — una forma habitual de fecha ISO. No es lo mismo que buscar una fecha fija.

Dónde usan regex los desarrolladores

Usos habituales en el mundo real:

  • Pistas de validación — formatos de email, teléfono, slug (a menudo combinados con validadores más fuertes)
  • Parseo de logs — extraer timestamps, códigos de estado o IDs de petición de líneas no estructuradas
  • Refactorizaciones — buscar y reemplazar en muchos archivos con grupos de captura
  • Resaltado de sintaxis y linters — tokenizar código (normalmente con patrones cuidadosamente ajustados)
  • Reglas de enrutamiento y rewrite — bloques location de Apache/Nginx, algunas reglas de rutas de frameworks

Regex destaca en estructura local del texto. Encaja mal con HTML anidado, documentos JSON completos o lenguajes de programación arbitrarios — usa parsers para eso.

Los motores difieren

RegExp de JavaScript, re de Python, PCRE en PHP/Ri grep y el crate regex de Rust no se comportan igual. Las diferencias incluyen:

  • Qué metacaracteres existen y cómo se maneja Unicode
  • Soporte de lookahead/lookbehind
  • Codicia predeterminada y reglas de fin de línea

Cuando copies un patrón de otro lenguaje, vuelve a probarlo en tu motor objetivo.

Conclusión clave

Un regex describe familias de cadenas, no una cadena. Las siguientes lecciones construyen el vocabulario — literales, clases, cuantificadores, flags y grupos — de las que están hechas esas familias.

Volver al resumen del curso