el live coding sí es deporte de alto riesgo
Introducción a las Expresiones Regulares
Todo lo que aprenderás sobre expresiones regulares
¿Qué son las expresiones regulares?
Aplicaciones de las expresiones regulares
Introducción al lenguaje de expresiones regulares
El lenguaje: caracteres, operadores, y construcciones
El caracter (.)
Las clases predefinidas y construidas
Los delimitadores: +, *, ?
Los contadores {1,4}
El caso de (?) como delimitador
Not (^), su uso y sus peligros
Reto: Filtrando letras en números telefónicos utilizando negaciones
Principio (^) y final de linea ($)
Uso práctico de Expresiones Regulares
Logs
Teléfonos
URLs
Mails
Localizaciones
Nombres(?) Reto
Usos avanzados en Expresiones Regulares
Búsqueda y reemplazo
Expresiones Regulares en lenguajes de programación
Uso de REGEX para descomponer querys GET
Explicación del Proyecto
Perl
PHP
Utilizando PHP en la práctica
Python
Java
Java aplicado
JavaScript
`grep` y `find` desde consola
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
PHP sigue siendo un lenguaje muy utilizado en la web moderna, y aunque no sea el favorito de todos, su capacidad para manejar expresiones regulares es impresionante y ampliamente funcional. Aprender a utilizar estas funciones en PHP puede hacer que la manipulación de textos sea más precisa y más rápida. Aquí vamos a explorar cómo manejar expresiones regulares con PHP, partiendo de la lectura de un archivo CSV.
Para empezar a trabajar con expresiones regulares en PHP, primero debemos leer un archivo. Supongamos que tenemos un archivo llamado results.csv
.
<?php
$file = fopen('files/results.csv', 'r');
while (!feof($file)) {
$line = fgets($file);
echo $line;
}
fclose($file);
?>
Este código abre el archivo para su lectura y recorre cada línea imprimiéndola en la pantalla. Es un paso esencial antes de aplicar cualquier procesamiento de texto, como el uso de expresiones regulares.
preg_match
en PHP?El siguiente paso es utilizar la función preg_match
de PHP, que permite buscar coincidencias en una cadena de texto utilizando una expresión regular. Esta función devuelve un valor booleano: true
si hay una coincidencia y false
si no la hay.
<?php
$pattern = '/^2018-\d{2}-\d{2}/';
if (preg_match($pattern, $line, $matches)) {
print_r($matches);
}
?>
En este ejemplo, buscamos líneas que comiencen con la fecha en el formato YYYY-MM-DD
del año 2018. La expresión regular ^2018-\d{2}-\d{2}
busca específicamente estas fechas, donde \d
es un dígito y {2}
indica dos dígitos consecutivos.
Al trabajar con expresiones regulares, a veces es necesario hacerlas más estrictas o más flexibles. Podemos utilizar metacaracteres como .*
que permiten cualquier carácter en cualquier cantidad para ser más inclusivos.
Imagina que quieres buscar todos los juegos de enero de 2018:
<?php
$pattern = '/^2018-01-\d{2},/';
if (preg_match($pattern, $line, $matches)) {
$day = $matches[1]; // Suponiendo que se agrupa el día
echo "Día del partido: $day\n";
}
?>
Este ejemplo busca líneas que comiencen con fechas específicas de enero de 2018 y, si encuentra una coincidencia, imprime el día específico del partido.
-
o los puntos .
para que sean interpretados literalmente cuando sea necesario.Al finalizar el procesamiento, podemos evaluar cuántas coincidencias se encontraron y cuántas no:
<?php
$matchCount = 0;
$noMatchCount = 0;
if (preg_match($pattern, $line)) {
$matchCount++;
} else {
$noMatchCount++;
}
printf("Matches: %d\nNo Matches: %d\n", $matchCount, $noMatchCount);
?>
Este tipo de evaluación es crucial para entender la eficacia de nuestras expresiones.
PHP ofrece herramientas poderosas para trabajar con expresiones regulares, permitiendo una búsqueda y manipulación de texto muy detallada y específica. Con práctica y atención a los detalles, puedes dominar la creación de expresiones regulares eficaces y eficientes. ¡Anímate a experimentar y fortalecer tus habilidades en este lenguaje y observa cómo tus proyectos ganan en robustez y funcionalidad!
Aportes 29
Preguntas 3
el live coding sí es deporte de alto riesgo
"Aceptando que no es uno de los mejores lenguajes del mundo"
Por favor, dejen que este caballero haga todos los cursos de programación.
preg_match( '/regex/',
$line,
$m)
donde:
regex: es la expresion regular.
$line: cadena de caracteres (cada línea del archivo).
$m: arreglo en donde cada match va a ir en cada uno de los lugares. En el script, este arreglo tiene dos elementos donde el elemento [0] es la cadena de caracteres de prueba y el elemento [1] es el grupo de caracteres que hace match.
Expresión regular para obtener partidos jugados en enero del 2018:
^2018\-01\-(\d\d),.*$
Código:
<?php
$file = fopen("../files/results.csv","r");
$match = 0;
$nomatch = 0;
while(!feof($file)) {
$line = fgets($file);
if(preg_match(
'/^2018\-01\-(\d\d),.*$/',
$line,
$m
)
) {
print_r($m);
$match++;
} else {
$nomatch++;
}
}
fclose($file);
printf("\n\nmatch: %d\nnomatch: %d\n", $match, $nomatch);
“Esto de programar en vivo es un deporte de alto riesgo”.
Justo así me siento enfrente de mis alumnos
Por que PHP no es el mejor lenguaje del mundo??
Acaso existe el mejor lenguaje del mundo ??
Por si están utilizando alguna consola de Ubuntu, Linux o wsl en Windows pueden instalar php solo con este comando y ya pueden ejecutar el archivo.
sudo apt install php7.4-cli
En Windows para ejecutar un archivo php se puede utilizar XAMPP; lo instalan, inicializan el servidor Apache. El archivo *.php tiene que estar en la carpeta htdocs localizado dentro de la carpeta de instalación llamada xampp (por default en C:) y ya en el navegador colocan localhost/archivo.php.
Jajaja php pobrecito python se los trago
Para PHP:
Las expresiones regulares en PHP van entre comillas simples:
if(preg_match(
'/^2018\-01\-(\d\d),.*$/',
$line,
$m
)) {
print_r($m);
$match++;
}
PHP fue mi primer lenguaje que permitio trabajar, Java el primero que me enseñaron en la universidad y Python el primero que me hizo ver que se puede aprender más. Amemos a los lengujaes no hagan bandos. Saludos.
Programar en vivo es un deporte de alto riesgo. 😄
Haha me encanta el “Ah, chingá”
<?php
$file = fopen("./results.csv", “r”);
$match = 0;
$nomatch = 0;
while(!feof($file)) {
$line = fgets($file);
if(preg_match(
’/^2018-01-(\d\d),.*$/’,
$line,
$m
)
) {
print_r($m);
$match++;
} else {
$nomatch++;
}
}
fclose($file);
printf("\n\nmatch: %d\nno match: %d\n", $match, $nomatch);
¡Qué gran maestro!
Muy bueno todo, gracias por la clase…
😃
aunque se notan los sesgos contra php del profe ja ja ja
Es increible la forma de utilizar PHP para hacer el mismo proceso para obtener los valores de una terminal. La ruta para obtenerlos jamas imagine que seria la misma que perl. Para ser sincero, es la primera vez que veo PHP y me agrada la verdad. A seguir aprendiendo
Me hace sentir más confianza ver que es normal equivocarse incluso con profesores expertos, siento que me ayudará en las entrevistas técnicas, la clase excelente.
Luego de terminar la carrera de Fundamentos de Programación, probablemente siga con PHP ya que estoy viendo que lo recomiendan mucho para Backend…
😂🤣😂🤣😂
el objetivo no es aprender php pero con este ejemplo queda muy claro que las expresiones regulares se pueden usar con este lenguaje
Interesante
Interesante.
super
Genial.
PHP llora por sus comentarios…
Realmente de admirar todo lo que hace el profesor Alberto, agradecido, recordemos siempre que el programar en vivo es un deporte de alto riesgo.
Tampoco sé PHP, pero igual se ve bastante bonito escrito :3.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?