Regex en múltiples lenguajes con CSV real

Clase 21 de 29Curso de Expresiones Regulares

Resumen

Domina expresiones regulares con un caso práctico y real: un CSV masivo de resultados de fútbol. Aprende cómo pequeñas diferencias entre motores en Perl, PHP, Python y JavaScript cambian el enfoque y cómo convertir esa variación en ventajas. Las expresiones regulares pueden ser complejas, pero son muy potentes cuando entiendes qué puedes y no puedes hacer con ellas.

¿Por qué las expresiones regulares importan en varios lenguajes?

Las expresiones regulares requieren entender con precisión qué se escribe y qué problema se quiere resolver. Aunque no uses todos los lenguajes, ver enfoques distintos profundiza tu comprensión y te prepara para resolver casos reales con más seguridad.

  • Diseño de patrones con intención y límites claros.
  • Lectura y adaptación a diferencias de cada motor.
  • Solución de casos comunes: email, dominio, nombres y teléfonos.
  • Conciencia de retos específicos: cuestiones de JIS.
  • Elección informada según potencia y rendimiento.

¿Qué lograrás al comparar motores?

  • Identificar pequeñas diferencias que cambian resultados.
  • Reutilizar lo aprendido en tu lenguaje principal.
  • Detectar atajos y límites de implementación.

¿Qué prácticas previas respaldan el aprendizaje?

  • Validaciones puntuales: email, dominios, nombres y teléfonos.
  • Enfoque en precisión antes que en complicación.
  • Atención al contexto y a los datos disponibles.

¿Cómo se usará un CSV real de fútbol para practicar?

Se trabajará con un archivo grande y uniforme. Es un CSV común que lista resultados desde finales de 1889, con 39,009 líneas y tamaño aproximado de 2.7 MB. El objetivo es aplicar patrones a datos reales y consistentes para obtener resultados confiables.

  • Tamaño aproximado: 2.7 MB.
  • Número de líneas: 39,009.
  • Rango temporal: desde 1889.
  • Estructura homogénea línea a línea.

¿Qué datos contiene el CSV histórico?

  • Fecha del partido.
  • País anfitrión y país visitante.
  • Goles del anfitrión y del visitante.
  • Tipo de partido: copa, amistoso, etc.
  • Ciudad y país donde se jugó.
  • Condición de sede: neutral o no.

¿Cómo identificar tamaño desde la CLI?

Puedes inspeccionar el archivo con un comando de sistema para confirmar tamaño y nombre.

ls -lh results
  • Verifica tamaño legible por humanos.
  • Asegura que trabajas sobre el archivo correcto.

¿Qué retos presentan los caracteres con acentos?

Algunos países y ciudades incluyen caracteres no ASCII, como México. En la práctica, se privilegiará la solución por estructura y, cuando convenga, se validarán acentos explícitos. Esto mantiene el enfoque en patrones robustos sin depender de codificaciones.

¿Qué lenguajes se compararán y qué esperar de cada uno?

Se explorarán varios lenguajes para resolver problemas similares de forma distinta. Cada solución será ligeramente diferente para mostrar el enfoque propio del lenguaje y sus expresiones regulares.

  • Perl: histórico y muy ligado al crecimiento de regex.
  • PHP: ampliamente usado, con regex potentes pero no siempre rápidas.
  • Python: opción moderna y clara para análisis de texto.
  • JavaScript: se aplicará más en front end.

¿Qué aporta Perl al aprendizaje de regex?

  • Contexto histórico: Perl y regex crecieron juntos.
  • Expresividad y atajos característicos.
  • Buen laboratorio para entender fundamentos.

¿Cómo encaja PHP en tareas web?

  • Lenguaje aún muy utilizado en la práctica.
  • Patrones útiles en validaciones y filtros.
  • Nota clave: potencia alta, velocidad variable.

¿Dónde brilla Python y cómo usaremos JavaScript?

  • Python: sintaxis clara para análisis de archivos.
  • JavaScript: enfoque en front end para interacción y validación.
  • Complemento ideal al comparar motores y resultados.

¿Te gustaría compartir qué lenguaje usas más y qué patrón te ha funcionado mejor con datos reales?