Hoy toca una pequeña actualización de en que punto exacto estoy. Allá vamos.
Como bien comenté en uno de mis primeros post. Me he introducido de pleno en la programación en Python y automatización en el mundo IT.
Empecé por un curso de «choque» de introducción a Python y actualmente estoy en siguiente modulo de «Uso de Python con el sistema operativo», el cual me está costando un poco más ya que uno de los módulos son las expresiones regulares.
Para quien no lo sepa, las expresiones regulares, son patrones de búsqueda que se usan para encontrar determinada información dentro de archivos o cadenas de texto.
Algo muy útil dentro del mundo de la programación y sobre todo en la administración IT.
No hay nada mejor para econtrar a un usuario, nombre de «host», patrones de IP, tiempo de conexión, y un larguísimo etc.
Las expresiones regulares son totalmente personalizables, no hay un standard de uso. Aunque hay unas principales, que son las primeras en aprenderse. Y suelen ser comunes a los lenguajes de programación, o al menos, hay pocas diferencias en su uso.
Pero la difilcutad, radica en que son totalmente personalizables, y la que usa un programador no necesariamente la usa otro. E incluso, puede que al principio cueste entender el patrón que usó para encontrar la información.
Un ejemplo:
Si en una cadena de texto dada como esta:
«Esta es una cadena de ejemplo creada el día: 30-06-2022 a las 13:42»
Queremos buscar la fecha, deberíamos de crear un patrón para que solo encuentre la fecha, tal que así.
import re #importamos el módulo de expresiones regulares.
print (re.search(r"\d{2}\W\d{2}\W\d{4}", "Esta es una cadena de ejemplo creada el día: 30-06-2022 a las 13:42"))
Donde nos arrojará un resultado como este:
<re.Match object; span=(35, 55), match='30-06-2022">
Por no ahondar mucho, básicamente, el patrón propuesto es \d{2}\W\d{2}\W\d{4}
donde:
\d{2} nos dice que debe de coincidir con carácteres númericos de al menos de 2 de longitud
\W nos dice que no debe de coincir con carácteres alfanúmericos.
El resto es una variante o repectición del anterior. Y en el resultado nos muestra que:
Span=(35, 55) Donde empieza el patrón encontrado
Match=’30-06-2022′ Es el patrón que ha econtrado.
Y así se podría hacer un búsqueda en un archivo de registros (log) para encontrar inicios de sesión por ejemplo.
Mi patrón que he puesto antes, es mejorable y puede ser totalmente distinto, de ahí que radica la difilcutad tanto de aprendizaje como de lectura de otros patrones.
Cuanto más exacto sea el patrón menos resultados no deseados econtraremos.
Y con esto, es la entrada de hoy, ya os contaré que tal el módulo entero.
Un saludo.