🔥 Nivel 8: Casos Reales de Estudio - Domina Regex en Situaciones Cotidianas

¡Llevemos tus habilidades al siguiente nivel con ejemplos del mundo real que podrás aplicar inmediatamente en tu trabajo!

🌐 Caso 1: Limpieza de Datos Web

Problema: Extraer solo tweets válidos de un archivo JSON masivo

Solución Regex:

"text":"([^"]*)"  # Captura el contenido entre comillas después de "text":

Bonus: Filtrar tweets con hashtags

"text":"([^"]*#\w+[^"]*)"

📑 Caso 2: Procesamiento de Logs

Problema: Extraer errores críticos de un archivo server.log

Patrón Óptimo:

^\[ERROR\].*?(500|404|timeout).*?$

Variante para análisis:

(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) \[ERROR\] (?P<message>.+?) \((?P<code>\d{3})\)

💼 Caso 3: Normalización de Bases de Datos

Problema: Unificar formatos de teléfonos

Patrón de Búsqueda:

(\+?\d{1,3})?[\s-]?\(?(\d{3})\)?[\s-]?(\d{3})[\s-]?(\d{4})

Reemplazo:

+1 (\2) \3-\4  # Formato estándar internacional

🛠 Técnicas Profesionales Comprobadas

  1. Pipeline de Limpieza:

    cat data.txt | grep -P "regex1" | sed -E 's/regex2/reemplazo/g' > limpio.txt
  2. Validación en Tiempo Real:

    import re
    if re.fullmatch(r'\b[A-Z]{2}\d{4}\b', codigo_producto):
       print("Formato válido")
  3. Extracción Multiarchivo:

    find . -name "*.log" -exec grep -P "error|warning" {} +

📊 Tabla de Soluciones Comunes

Problema Patrón Regex Ejemplo
Duplicados \b(\w+)\b.*\b\1\b Encuentra palabras repetidas
HTML Tags <([a-z][a-z0-9]*)[^>]*>(.*?)</\1> Captura pares de tags
CSV Quotes "(.*?)" Texto entre comillas en CSV

🎓 Reto Final: Proyecto Integral

Objetivo: Procesar data.txt para:

  1. Extraer todos los emails válidos
  2. Normalizar fechas a formato ISO
  3. Eliminar líneas corruptas
  4. Extraer métricas clave

Solución Paso a Paso:

# 1. Extraer emails
grep -Po '\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b' data.txt > emails.txt

# 2. Normalizar fechas
sed -E 's/(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])\/(19|20)\d{2}/\3-\1-\2/g' data.txt > fechas_iso.txt

# 3. Limpiar datos
grep -Pv '[^\x00-\x7F]' data.txt > limpio.txt

¡Felicidades! 🎉 Ahora tienes un arsenal completo de técnicas regex para:

  • Procesamiento de datos a gran escala
  • Limpieza automatizada
  • Extracción inteligente
  • Validación profesional