Análisis de Datos de Partidos de Fútbol con Expresiones Regulares
Clase 24 de 29 • Curso de Expresiones Regulares
Contenido del curso
- 5

Uso de Expresiones Regulares para Buscar y Reemplazar Texto
09:55 - 6

Búsqueda Avanzada con Expresiones Regulares: Clases y Caracteres
13:55 - 7

Operadores en Expresiones Regulares: Asterisco, Más e Interrogación
17:42 - 8

Contadores en Expresiones Regulares: Uso y Aplicaciones Prácticas
14:03 - 9

Expresiones Regulares: Uso de Lazy Matching en CSVs
07:47 - 10

Negación de Clases y Construcción de Expresiones Regulares
06:49 - 11

Expresiones Regulares para Filtrar Números Telefónicos
01:06 - 12

Expresiones Regulares para Procesar Archivos CSV Masivos
08:00
- 13

Expresiones Regulares para Análisis de Logs UNIX
07:22 - 14

Expresiones Regulares para Validar URLs y Dominios Web
08:07 - 15

Creación de Expresiones Regulares para Validación de Teléfonos
12:30 - 16

Validación de Correos Electrónicos con Expresiones Regulares
13:42 - 17

Expresiones Regulares para Coordenadas Geográficas
17:16 - 18

Validación de Nombres Propios y Apellidos en Regex
03:21
- 20

Extracción de Variables en URLs con Expresiones Regulares
10:49 - 21

Uso de Expresiones Regulares en Perl, PHP, Python y JavaScript
03:29 - 22

Extracción de Información con Expresiones Regulares en Perl
23:35 - 23

Expresiones Regulares en PHP: Filtrado de Datos CSV
09:30 - 24

Análisis de Datos de Partidos de Fútbol con Expresiones Regulares
16:26 - 25

Expresiones Regulares en Python para Análisis de Datos
21:58 - 26

Lectura de Archivos en Java con BufferReader
07:59 - 27

Expresiones Regulares en Java: Búsqueda y Filtrado de Datos
08:48 - 28

Validación de Emails con JavaScript y Expresiones Regulares
17:35 - 29

Expresiones Regulares en Línea de Comandos UNIX y Windows
08:18
¿Cómo trabajar con datos de partidos de fútbol usando PHP?
En el mundo de la programación, a veces lo pequeño hace una gran diferencia. Analizar datos de partidos de fútbol es un desafío en términos de precisión y eficiencia. Aquí exploraremos cómo manipular información de partidos de selecciones nacionales utilizando PHP. Enfocarse en la limpieza de datos, comprensión de expresiones regulares y controlando intricados detalles de los datos como nombres de países con caracteres especiales o resultados de partidos.
¿Cuáles son los primeros pasos para extraer información específica?
Para comenzar, determinamos qué datos deseamos analizar. Por ejemplo, queremos obtener todos los partidos empatados en la historia de selecciones nacionales. Empezamos escribiendo un script básico en PHP:
<?php
// Limpiamos pantalla y cargamos el archivo de datos
echo "\033[2J\033[;H"; // Código para limpiar la pantalla en terminal
// Cargamos datos del archivo
$filename = "Results.txt";
$file = fopen($filename, "r");
// Inicializamos la bandera para que el match sea insensitive al case
$flags = "i";
// Establecemos el patrón de expresión regular (Regex)
$pattern = '/(\d{4})-(\d{2})-(\d{2}),([\w\s\-]+),(.*?)-([\w\s\-]+),(.*?)-(\d+),(\d+),.*?(Friendly|Eliminatorio|Competencia)/';
while (($line = fgets($file)) !== false) {
if (preg_match($pattern, $line, $match)) {
$localTeam = $match[4];
$visitorTeam = $match[6];
$localScore = $match[8];
$visitorScore = $match[9];
// Evaluamos el resultado del partido
if ($localScore == $visitorScore) {
echo "Empate: $localTeam vs $visitorTeam $localScore-$visitorScore\n";
}
}
}
fclose($file);
?>
¿Cómo solucionar problemas comunes en los datos?
Uno de los retos comunes en este tipo de datos es lidiar con caracteres no estándar, como acentos o cedillas, en los nombres de los equipos. En casos como estos, podemos ajustar nuestras Regex para aceptar caracteres adicionales, lo que es vital para asegurar que toda la información sea considerada.
A continuación, refinamos nuestra expresión regular para incluir espacios y guiones en los nombres de países:
$pattern = '/(\d{4})-(\d{2})-(\d{2}),([\w\s\-\']+),(.*?)-([\w\s\-\']+),(.*?)-(\d+),(\d+),.*?(Friendly|Eliminatorio|Competencia)/';
¿Cómo generar información más útil?
La idea es no solo extraer datos, sino también procesarlos para crear información comprensible de un vistazo. Por ejemplo, podemos modificar la impresión para añadir etiquetas que determinen claramente si el resultado del partido fue un empate o si ganó un equipo en particular.
if ($localScore == $visitorScore) {
printf("%s, %s vs %s: Empate (%d-%d)\n", $match[1], $localTeam, $visitorTeam, $localScore, $visitorScore);
} elseif ($localScore > $visitorScore) {
printf("%s, %s vs %s: Local (%d-%d)\n", $match[1], $localTeam, $visitorTeam, $localScore, $visitorScore);
} else {
printf("%s, %s vs %s: Visitante (%d-%d)\n", $match[1], $localTeam, $visitorTeam, $localScore, $visitorScore);
}
¿Por qué es importante la eficiencia al procesar datos?
Debemos tener en cuenta la eficiencia al manipular grandes volúmenes de datos. Usar expresiones regulares adecuadamente configuradas permite procesar grandes conjuntos de datos en poco tiempo. Aquí calculamos el tiempo que tarda nuestro script en ejecutarse:
$startTime = microtime(true);
// ... procesamiento de datos ...
$endTime = microtime(true);
$executionTime = $endTime - $startTime;
echo "Tiempo de ejecución: " . round($executionTime, 2) . " segundos\n";
Al medir el tiempo, podemos hacer comparaciones y mejorar los algoritmos de procesamiento, logrando scripts más efectivos.
¿Cómo gestionar errores comunes durante la ejecución?
Durante la ejecución es común enfrentar errores como líneas no coincidentes con la expresión regular. Estos pueden deberse a caracteres inesperados o a faltantes en los datos. Un truco útil es imprimir solo las líneas que no coinciden para así identificar rápidamente la fuente del problema:
while (($line = fgets($file)) !== false) {
if (!preg_match($pattern, $line, $match)) {
echo "Línea sin match: $line\n";
} else {
// Procesar la línea si hace match
}
}
Este enfoque nos permite ajustar rápidamente las expresiones regulares o los datos pendientes de revisar. En situaciones donde el resultado no es el esperado, depurar de esta forma abrevia el ciclo de desarrollo.
¿Cómo continúa uno su aprendizaje en la programación?
La programación exige un constante aprendizaje y ajuste. Practicar extraer, procesar y generar datos con diversos lenguajes como PHP es solo el inicio. En cada sesión de código hay una nueva lección que aprender, siempre buscando optimizar los métodos y dar el próximo paso hacia otros lenguajes como Python. ¡Sigue adelante, el conocimiento no tiene límites!