Transcripciones
1. ¿Por qué las expresiones normales?: Hola y bienvenidos
a la masterclass completa de
expresiones regulares de
Python. Esta clase está totalmente actualizada e interactiva con aprendizaje
práctico para ayudarte a guiarte de 0 a héroe y aprender Python RegEx. ¿ Por qué expresiones regulares? Python es uno de los
lenguajes de programación
más populares y de más
rápido crecimiento del mundo, y se proyecta que crezca
aún más en el futuro. Entonces si estás construyendo
tu carrera como programador o
científico de datos y quieres diferenciarte del
resto de la multitud aprendiendo solo una habilidad técnica o esa expresión
regular de Scalar . Entonces, ¿qué se puede hacer con expresiones
regulares? Puedes automatizar tareas que
sacarán en cuestión de segundos. Puedes hacer
tareas avanzadas de coincidencia de
botones usando el
increíble poder de Python, puedes leer, saltear y reescribir
datos según tus propias necesidades. Y lo mejor de
ello es que es tan fácil y directo dentro de
unas pocas líneas de código, podrás
hacer tareas que tardarían horas en hacer manualmente. Y ahora vamos a ejecutar nuestro programa
y ver cómo se ve. Esto se ve mucho más legible y mucho
más fácil de trabajar. Vamos a abrir el primer archivo junto a él y
combinarlos juntos. La diferencia es día y noche. Hicimos eso. Y qué 15 líneas de
código menos el espaciado. Esto habría tardado mucho
tiempo en ordenarlo manualmente. Y también existe la
posibilidad de error humano, que podría ejecutar
toda la base de datos para nosotros. En cambio, con pocas líneas de código, dejamos que la máquina haga el trabajo y eliminamos la
posibilidad de faltar un valor de dos y crear un efecto bola de nieve
que ejecute nuestros datos. Entonces, ¿para quién es este curso? Principiantes que
nunca han
programado programadores provenientes de
diferentes idiomas. Los programadores no son Python básico, pero quieren elevar
sus habilidades. Entonces, ¿cómo son los costos reales? Echemos un vistazo primero. Te daré una breve
introducción sobre cómo usar la droga X en
tu programa Python. Entonces escribiremos
nuestro primer patrón para verificar el
correo electrónico del usuario usando RegEx. Entonces vamos a echar un vistazo a diferentes
métodos de búsqueda y emparejar objetos y mostrar cómo
funcionan resolviendo problemas. Entonces aprenderemos a
extraer datos útiles y
usaremos una herramienta que haría mucho, mucho más fácil los patrones de
cinturón. Por último, tendremos
un ejercicio del mundo real donde se nos dará un
archivo que se pida leer en él, ordenar valores en
un orden específico, luego escribir la nueva
lista ordenada y un archivo diferente. Pasaremos por todo esto
y más de manera oportuna. Esta clase está destinada a ser corta, concisa y recta
al grano. Podrías perder menos
tiempo en teoría y más tiempo
en experiencia práctica. Entonces, ¿a qué esperas? Es hora de que lleves tus habilidades de programación
al siguiente nivel, inscribas hoy, y
te veré dentro del curso.
2. Introducción - Verificar Usuarios Email Usando Regex: Hola y bienvenidos de
nuevo a mi video. hoy estaremos echando un
vistazo a las expresiones regulares. pueden usar expresiones regulares
o expresiones regulares para comprobar si una cadena contiene
un patrón especificado. Es una herramienta poderosa para
encontrar patrones en un texto. Entonces echemos un vistazo. Así digamos por ejemplo, queremos verificar el
correo electrónico del usuario usando RegEx. Lo primero que tenemos que
hacer para empezar a usar RegEx es importar
el módulo RE. Ahora asuma que esta es la
dirección de correo electrónico que queremos verificar. Ahora crearemos
un botón y estableceremos las reglas para ese
botón que queremos revisar. Ahora tenemos que dividir
la dirección de correo electrónico en cuatro partes para tener una mejor comprensión
para la primera parte, que está recibiendo
snap o ID de usuario, puede contener de una a
Z y 0 a nueve. El principio
usamos la zanahoria o el símbolo circunflex
para inicializar eso. Queremos emparejar una cadena que empiece con lo siguiente. Y para terminar con este patrón, usaremos el símbolo del dólar. Pero por supuesto queremos agregar más cuerdas de tienda de condición. No vas a
terminarlo ahora mismo, la segunda cosa que escribimos
esta a a Z y 0 a nueve. Esto significa que esta
parte de la cadena puede contener cualquier
letra en cualquier número. Ahora escribiremos un
símbolo más indicando que esto puede ocurrir una
o más veces. El nombre del destinatario
también puede incluir símbolos
como periodo, guión bajo y guión. Período subrayado y guión. Utilizamos la barras invertidas para definir
nuestros personajes especiales, punto, guión bajo y guión. Utilizamos el signo de interrogación aquí porque esos símbolos se
pueden usar ya sea 0 o uno como máximo si
ocurren dos veces, eso significa que es
un correo electrónico inválido. Por eso tuvimos que precisar eso con un símbolo de signo de
interrogación. Ahora, después de esos símbolos, también
puedes tener cualquier personaje de la
a la Z y del 0 al nueve. Después de los símbolos que
hemos especificado, el punto bajo y guión, podemos tener letras de la a a Z o números de 0 a nueve. Así como esto.
Nuevamente, usaremos el símbolo más porque
podrían ocurrir más de una vez. Ahora tenemos que escribir el
símbolo add, que ocurre aquí. Después del símbolo add, tendremos cosas como En Hotmail o Gmail y
así sucesivamente y así sucesivamente. Por lo que puede ser cualquier carácter
ALPHANUMÉRICO. Después de que el anuncio Hotmail
llega el periodo. Por lo que tenemos que precisar eso. Ahora después del periodo viene
cosas como.com.net. Por lo general son de longitud entre
dos a tres caracteres. Por lo que tenemos que precisar eso. Ahora usaremos el
símbolo del dólar para terminar nuestra cadena. Ahora que nuestro patrón ha hecho, queremos recibir la
entrada del usuario pidiéndoles que
ingresen su correo electrónico. Ahora vamos a crear un bucle F para revisar el botón
¿nos usarían? Y así el método re.search
tomará dos argumentos. El primero es
el botón que creamos. El segundo es la entrada del usuario o la
cadena que queremos revisar. Entonces vamos a ejecutar nuestro programa
y ver cómo se ve. Entonces ingresemos esta
misma dirección de correo electrónico. Entonces creo que el error que
hice fue dejar un espacio aquí. Y cuando elimino el
espacio, funciona muy bien. Un tipo alto fonético
en lugar de mapa genético. Entonces veamos si ingresamos un correo electrónico inválido a
propósito, como genérico. Y luego utilicé otro correo electrónico
sencillo y válido. Bueno, por el aspecto de ella, nuestro programa funciona muy bien. Entonces echemos un
vistazo a otro ejemplo. Digamos que queremos buscar un cierto botón en
la siguiente cadena. Por lo que parece que el capital
a se repitió dos veces. Y queremos comprobar ese
patrón en nuestro distinto. Para hacer eso primero
definiremos nuestro botón. Aquí. Estaremos utilizando
el método de compilar. También podríamos usar
el método de búsqueda como lo hicimos en el ejemplo
anterior. Entonces R aquí antes de nuestra
cadena significa string raw, python, string raw trata slash invertida como un carácter
literal. Esto es útil cuando tenemos
una cadena que contiene barras invertidas n No quiero que se
trate como un personaje de escape. Entonces veamos la
diferencia entre unas cuerdas regulares
y cuerdas crudas. Entonces la primera, que es una cadena regular, trató la barras invertidas n
como un carácter de escape. En este caso, se utiliza
es iniciar una nueva línea. Y como se puede ver, sin embargo, en la segunda cadena, que es una cadena sin procesar, se ignora a los usuarios de barras invertidas y la
trata como un carácter literal. De igual manera, si reemplazamos la
slash invertida n con la barras invertidas x, tendremos una flecha
y la cadena regular porque la slash invertida x
no tiene un propósito. No obstante, nuestra cadena en bruto, ignoraremos eso e
imprimiremos tal y como está. Así que volvamos a
nuestra cadena de prueba. Ahora vamos a crear un objeto. Por lo que
tecleamos el botón que estaremos usando. Ahora usaremos el método find. Dentro del método ETL definido, escribiremos nuestras pruebas de encogerse. Ahora hemos creado
un objeto llamado coincidencias que podemos iterar
sobre usando suficiente flujo. Como se puede ver,
muestra dos ocurrencias de un tiempo mostrando
su posición. Además, es sensible a mayúsculas y minúsculas, lo que
significa que no
recogió la minúscula a También
podemos hacer nuestro código
más corto usando r e, encontrar a Eta enseguida. Por ejemplo. Ahora escribiremos el botón que
queremos buscar, que es a0. Y luego el segundo argumento
vamos a pasar la cadena que
queremos probar. Como se puede ver, devuelve los mismos resultados con
menos líneas de código. Entonces eso es todo para el video de hoy. Muchas gracias por mirarte y espero
verte en la siguiente.
3. Métodos para buscar partidos: Hola y bienvenidos de
nuevo a mi video. Hoy estaremos echando un vistazo a los métodos para buscar coincidencias. Entonces en el último video
trabajamos en este ejemplo, que usaba encontrar mejor. Existen otros métodos
para buscar coincidencias, como emparejar,
buscar y encontrar todos. Entonces encuéntralo para devolver
un objeto con la posición de la cadena
que estábamos buscando. Encontrar todo sin embargo, solo devuelve
una cadena, por ejemplo. Entonces eso es lo que encuentran todos. ¿ Qué pasa con el método de partido? El método match busca botón solo al principio de la cadena y devuelve solo la primera
ocurrencia, por ejemplo. Para que como se puede ver, no devolvió la segunda
ocurrencia de una Ahora vamos a cambiar el botón. Queremos buscarlo para otra
cosa que no sea una, por
ejemplo, como se puede
ver, es volver ninguno. Así que a pesar de que se ha producido cinco novena ocho
en nuestra cadena, pero debido a que no fue al
principio, es volver ninguno. Entonces, ¿qué pasa con la búsqueda? Buscar trabajos muy
similares para encontrar mejor. No obstante, sólo se devuelve la primera ocurrencia
del patrón, por ejemplo. Por lo que los cuatro métodos de coincidencia más
comunes, o encuentran una mejor búsqueda, encuentran todos y coinciden. Entonces echemos un
vistazo a este ejemplo. Tenemos la siguiente cadena
que dice $3 para la camiseta, no
usaríamos RegEx para comprobar si la cadena comienza
con un dígito. En este caso, son tres. Y si ese es el caso,
imprimiremos ese dígito. Entonces primero vamos a importar RE. Y luego
crearemos una cadena y pondremos este texto dentro de ella. Ahora queremos crear un botón
que queremos buscar. Y vamos a estar
usando cuerdas crudas. Como de costumbre, vamos
a teclear nuestro botón invertida t. Invertida
d significa un dígito, que es exactamente
lo que tenemos aquí. Entonces ahora que creamos un botón, vamos a crear un objeto de coincidencia. Aquí pasaríamos
en nuestro botón, luego pasaremos en nuestra cuerda. Ahora simplemente podemos decir F, lo que significa que si S es cierto, entonces imprime lo siguiente. Podrías preguntar, la cotización
es coincidente grupo de puntos, grupo es un método
del objeto de coincidencia. Y lo que simplemente
hace es que devuelve la cadena coincidente, que en este caso es tres. Estaremos echando un vistazo más de cerca a los métodos de
Match en el siguiente video. Pero por ahora, grupo devolverá
el número tres para nosotros. Entonces vamos a ejecutar nuestro programa
y ver cómo se ve. Por lo que aunque cambiemos
este número a cinco, devolverá cinco. Entonces si no usamos
el método grupal, esto es lo que vamos a conseguir. Vas a conseguir el objeto de partido
completo. Sólo queríamos la cuerda cinco. Por eso usamos el método de grupo de
puntos. Entonces eso es todo para el video de hoy. Muchas gracias por mirarte y espero
verte en la siguiente.
4. Métodos para los objetos de coincidencia: Hola y bienvenidos de
nuevo a mi video. Entonces en el último video
vimos cómo encontrarse con el retorno un objeto
que pudiéramos iterar usando suficiente bucle. Por lo que este propio objeto coincide tiene sus propios métodos y los
vamos a estar
echando un vistazo. Esos son los métodos
comienzan y crecen y abarcan. Para que como se puede ver cuando
imprimimos el resultado, devuelve este objeto. Solo podemos imprimir el lapso
por aquí usando span para eso, vamos a usar
Match dot span. Ahora cuando ejecutemos nuestro programa, vamos a conseguir una tupla
que contenga nuestro lapso que esto puede ser útil si
queremos imprimir exactamente donde ocurrió nuestro
patrón. Por ejemplo, como se puede ver, esto parece más
legible para el usuario. Si imprimimos el tipo de
este método match dot span, descubriremos que
es sólo una tabla que incluye la posición, lo que ha ocurrido nuestro partido. También podemos imprimir la posición
inicial y final de nuestra cadena usando
start and end. Entonces echemos un vistazo. Partido, entonces, partido de coma. Entonces para devolver los enteros de nuestra posición inicial y
final, podríamos hacer algo como esto. Y cuando imprimimos su tipo, descubriremos que
es sólo un entero. Por último, si
sólo queremos imprimir la cadena que coincida,
usaremos un grupo. Y como era de esperar, cuando
imprimimos su tipo, llegamos a saber
que es una cuerda. Entonces, en conclusión, coincide con
un objeto que contiene el lapso en el que se ha producido el patrón de
slash de coincidencia. Y también contiene la
cadena que se emparejó. Podemos acceder a
componentes individuales de este partido utilizando los
métodos que pasamos por el método start
para obtener un entero esa posición inicial en la
que comenzó el patrón. Método para obtener un entero, la posición final en la
que terminó el botón. Método de grupo para obtener
la cadena coincidente. Y por último, el método
span para obtener una tabla que incluya la
posición inicial y final del botón. Entonces eso es todo por lo básico. Y en el siguiente video
estaremos echando un vistazo a cómo podríamos extraer datos
útiles usando X roja para fines de ciencia de
datos o
documentación. Entonces eso es todo para el video de hoy. Muchas gracias por mirarte y espero
verte en la siguiente.
5. Extraer Datos Útiles: Hola y bienvenidos de
nuevo a mi video. Hoy estaremos
aprendiendo a extraer datos útiles y elevar nuestras habilidades de
expresión regular a un nivel completamente nuevo. En este video,
estaremos utilizando una herramienta o
un sitio web llamado
beg x, uno-a-uno. Es una
herramienta muy poderosa que
no sólo nos enseñará más sobre RegEx, sino que además simplificará el proceso
y lo visualizará a continuación. En primer lugar, haremos click en bifan como nuestro lenguaje de programación con el
que estamos trabajando. Ahora supongamos que tenemos
la siguiente cadena. Entonces echando un vistazo a la cuerda, tenemos dos números. Uno es un número de teléfono
y el otro es un número
de dos dígitos de la compañía vende justo al lado del bate. Lo que sabemos de los números telefónicos es que constan
de diez dígitos, por lo que fácilmente
lo diferencia del otro
número de aquí. Por lo que podemos establecer nuestro
RegEx para extraer cada vez que encuentre un número de secuencia de diez
dígitos. Entonces cuando pasamos a
la pestaña de referencia rápida, pudimos encontrar la sintaxis que
necesitamos en caso de que la olvidemos. Entonces aquí dice invertida
d significa cualquier dígito, o en otras palabras, cualquier número. Entonces sigamos adelante y utilicemos eso. Como se puede ver cuándo, cuando
escribimos invertida d, Esos son los partidos que obtenemos. Esencialmente coincidió con
cada dígito que tenemos. Ahora lo que queremos igualar dos dígitos consecutivos
podemos empatar a días de invertida. Ahora coincide con dos dígitos. Entonces antes teníamos 12
partidos, ahora tenemos seis. Porque no coincide con
cada dígito individual ahora solo coincide con dos
dígitos juntos como uno. Y si escribimos tres
barra invertida estos, sólo
vamos a conseguir dos partidos de tres dígitos consecutivos. Y como se puede ver,
20 millones no coinciden porque es
un número de dos dígitos, y así sucesivamente y así sucesivamente. Entonces uno podría pensar cuando Izzy, si un número de teléfono
que es de diez dígitos, podríamos quedarnos diez invertida estos dos
coinciden con esa secuencia. Técnicamente, no están
equivocados y eso
funcionaría bien, por ejemplo. Por lo que tenemos 345678910. Entonces cuando miramos los partidos, esto es lo que vamos a conseguir. Obviamente, hay
formas más sofisticadas en las que podrías hacer eso. Por ejemplo, podrías ir
a la pestaña de referencia rápida. Los tokens comunes encontrarán una expresión que diga
exactamente tres de una, decir, exactamente
tres ocurrencias de la letra a consecutivamente. Así que intentemos
usarlo a nuestro favor. Así que de inmediato del bate, no
necesitamos una, queremos la Barra Invertida d en su lugar. Por lo que escribimos barra invertida d y luego entre dos corchetes rizados entrarán diez en lugar de tres. Ahora, esto nos dio los mismos resultados exactos
con mucho menos codificación. Por supuesto, algunos podrían
decir, Bueno, los números de teléfono, se presentará en formato
diferente, por ejemplo. Entonces si queremos extraer
o números de teléfono y están claramente en dos formatos
diferentes. Podríamos hacer lo siguiente. Primero, guardemos nuestra expresión por aquí y
volveremos a ella más tarde. Por lo que uno del bate,
nuestro botón que
queremos igualar empieza
con un soporte. No obstante, si escribimos de paquete
hasta una expresión regular, nos encontraríamos con un problema. Y eso se debe a que
el corchete es un personaje especial y tiene
un significado para nuestro programa. Como se puede ver cuando
miramos el paso de referencia rápida, encontramos que el soporte se utiliza para capturar todo
en corchete cerrado, en este caso se llama
carácter especial. Entonces para usar un personaje especial,
tenemos que escapar de él. ¿ Y cómo nos escapamos? Simplemente escribimos una
barras invertidas antes de ella. Por ejemplo. Ahora como se puede ver, esto funciona bien y
detectó nuestro bolsillo por aquí. Entonces vamos a continuar. Entonces tenemos tres dígitos después
del corchete, vamos a morir. Pero en nuestro botón, tres dígitos. Y como se puede ver,
detectó el número. Entonces, hasta ahora tan bueno. Y de nuevo tenemos un soporte, pero podemos escribir los
soportes de inmediato. Tenemos que escapar de
él usando la slash invertida. Ahora tenemos un símbolo de guión. Entonces tenemos tres dígitos, y luego un guión simple, y finalmente cuatro dígitos. Ahora, como se puede ver, está coincidiendo con nuestro formato de número de
teléfono. Entonces terminamos con
esta expresión, pero aún tenemos
nuestra primera expresión que es barra invertida d diez. ¿ Cómo le decimos a nuestro
programa que busque este botón o este
patrón simplemente, podríamos usar el símbolo de barra
vertical. Entonces cuando escribimos en
la búsqueda por aquí, o obtenemos este partido alternativo, ya sea a o B. Así que vamos a usar lo simple. Entonces pegaremos nuestra
expresión por aquí. Y como se puede ver,
detectaron ambos. Por lo que dice o buscar
este patrón o este botón. Entonces si queremos usar esto
en nuestro programa Python, podríamos hacer lo siguiente. Entonces primero importamos
nuestra droga de uso ocho X. Luego hacemos una cadena
para contener nuestro texto. Ahora creamos una batuta. Y llamamos a lo mejor
el botón que creamos. Ahora vamos a utilizar encontrar todos primero
escribirán nuestro patrón. Entonces el texto que queremos igualar. Ahora simplemente imprimimos partido. Veamos los resultados. Como se puede ver,
funciona muy bien. Por lo que siempre podemos usar
RegEx uno-a-uno para construir nuestra expresión y
probarla antes venir a aplicarla aquí en Python, hace las cosas mucho más fácil
porque visualiza el proceso para nosotros y nos muestra lo que se está emparejando
en tiempo real. Por lo que ahora para el nivel dos, tenemos este bloque de texto gigante y queremos extraer
los títulos de él. Entonces los títulos aquí son nuestro
propósito y nuestra oportunidad. Y queremos extraer dosis. Entonces para empezar, podemos teclear nota porque
empiezan con nada. Y luego hay un
espacio, luego un número. Ahora capturamos la nota uno y n2, pero aún queremos capturar el texto que viene después de él. Si miras de cerca, verás que
el título termina con una nueva línea que se está
creando aquí y aquí. Y sabemos que una nueva línea
significa slash invertida en Python. Queremos capturar todos los textos hasta que encontremos con una nueva línea. Queda la pregunta, ¿cómo
escribimos eso en expresión regular? Entonces si miramos por aquí a
la parada de referencia rápida, dice cualquier personaje
excepto a, B, o C. Así que vamos a abrir un nuevo doc x
empezar a experimentar. Entonces digamos que tenemos el
siguiente texto y queremos decir que coincidan todos los caracteres excepto el signo porcentual,
el signo igual. Por lo que escribiremos lo siguiente. Como se puede ver, igualó todo excepto aquellas muestras. Y para hacer una secuencia, agregamos un signo más al
final de nuestra expresión. Ahora dice uno o
más personajes hasta que te encuentres con
uno de esos signos. Entonces esto es lo que significa el
signo más. Una o más ocurrencias de un, cualquier carácter que especifique. Ahora volviendo a nuestros textos, apliquemos lo que aprendimos. De acuerdo, entonces ahora tenemos un número, entonces tenemos un espacio. Por lo que agregaremos un espacio. Entonces intentaremos
esta expresión. Cualquier cosa excepto una nueva línea. Sólo coincide con el primer
personaje y se detiene. En cambio, queríamos capturar
uno o más personajes. Para eso,
usaremos el signo más. Y cuando vamos al tipo de referencia
rápida
y tipo de uno o más, podemos usar el signo más para ello. También podríamos usar el signo estrella, lo que significa 0 o
más ocurrencias. Y nos daría
los mismos resultados. Ahora cuando vamos a la información del
partido, podemos ver que funciona, pero aún no estamos
terminados porque
queremos capturar
los títulos y ni
uno y el nodo dos
no forman parte de nuestros títulos. Para eso usaremos corchetes. Como se puede ver, dice
capturar todo lo encerrado. Entonces cuando vamos a nuestra expresión, esta es exactamente la expresión donde comenzó a
capturar el título aquí. Entonces pongamos corchetes
alrededor de esa expresión. Ahora lo que hace es que, grupos sean capturados
esos resultados para nosotros. Ahora lo que sucede
es que coincide con esos otros resultados como el
nodo uno y el nodo dos. Así que utilicemos eso
en nuestro código Python. Y para copiar pegar este bloque
gigante de texto, vamos a usar tres comillas
simples para dar cuenta de barra invertida n
o nuevas líneas en nuestro texto. Entonces en lugar de este antiguo método, va a estar usando
tres comillas, 123, entonces vamos
a basar nuestro texto, y luego usaremos otras
tres comillas. Ahora vamos a copiar nuestra expresión
regular que escribimos y la
basamos en el patrón. Como se puede ver cuando
ejecutamos el programa, sólo devuelve el título es para nosotros sin ni uno, ni dos. Y ahora para el nivel tres, tenemos un bloque de texto relativamente
pequeño. No obstante, extraeremos
mucha información de la misma. Entonces si echamos un vistazo a la información
útil aquí, podemos ver que
las ganancias se
proporcionaron en el
siguiente formato. Ejercicio fiscal FY luego
seguido del año, en este caso, es 2021 o 2020, y luego un espacio y luego
la sala de audiencias ese año. En este caso, esto es
Q1 y esto es q4. Entonces sabemos que en un año sólo
puede haber cuatro trimestres, Q1, Q2, Q3, y Q4. No puede haber un Q5. Entonces vamos a tener eso en cuenta. Entonces justo al lado del murciélago, nuestro patrón comienza con el
FY. Entonces vamos a teclear en el FY. Entonces obviamente
hay cuatro dígitos, que en este caso
es el año. ¿ Y cómo hacemos eso? Usamos invertida d. Y luego entre los
corchetes rizados, escribimos cuatro. Entonces esta expresión significa f y seguido de cualesquiera cuatro dígitos
o cualquier número de teléfono. Hasta el momento tan bueno. Y luego hay un espacio después, antes de la Q1 y Q4. Tenemos que precisar eso en
nuestra expresión regular. Entonces tecleemos un espacio. Entonces hay una cola. Por lo que ahora la cola es
seguida por un dígito. No obstante, no podemos
simplemente escribir slash d porque eso incluiría cosas como las que en
este caso está mal. Por lo que queremos asegurarnos de que
nuestros dígitos sean de uno a cuatro. ¿Cómo hacemos eso? Si nos fijamos en la pestaña de referencia
rápida, existe esta opción que dice
un solo carácter de a, B, o C. Puedes
especificar explícitamente los números que
quieres incluir, que es 1234. Pero hay un mejor enfoque. Podríamos usar esta opción en el sello de referencia rápida que dice un personaje en
el rango a a Z. ahora podríamos escribir
uno a cuatro en su lugar, y nos daría los mismos
resultados con menos codificación. Así que ahora vamos a probar nuestro
patrón y Python, me
llamamos me encanta el texto y lo
basamos en esta cosa nombre texto. Y luego copiamos nuestro patrón y lo
basamos en el patrón,
nuestro programa Python. Y ahora vamos a ejecutar el
programa para ver los resultados. Entonces, ¿qué pasa si uno de los
vuelos fuera minúsculas, pero aún queremos
igualar eso de todos modos, podríamos hacer lo siguiente. Los rezagos igual ignoran caso. Ahora cuando imprimimos los resultados, como se puede ver, se
iguala la f, y minúscula
Y digamos que no
queremos incluir el ejercicio fiscal, que significa ejercicio fiscal,
Simplemente, podríamos
usar los corchetes para capturar y retener sólo
las partes que queremos. Entonces por ejemplo, ahora cuando
ejecutamos nuestro programa, lo
podemos ver, solo
capturó las partes con especificado dentro
de los corchetes. Así que volvamos a
RegEx uno-a-uno. Podremos igualar el
año y sus trimestres. No obstante, todavía queremos
igualar las ganancias
de ese conjunto aquí. Y supongamos que teníamos
otros números y nuestros textos que queremos
evitar, por ejemplo. Así que vamos a salvar nuestra
expresión aquí. No queremos
capturar este número. Sólo queremos
capturar los números que comienzan con un signo de dólar. No obstante, no podemos simplemente escribir el signo del dólar ya que es
un personaje especial. Eso significa final de una cadena, como se puede ver en la pestaña de
referencia rápida en la parte inferior. Entonces porque es un personaje
especial, sabemos
que tenemos que
usar la barra invertida para
escapar a ese
personaje especial antes de usarlo. Ahora es coincidencias con lo que queremos. Ahora tenemos un dígito después de eso, por lo que podemos escribir
barra invertida d Sin embargo, hay un
punto decimal después de eso, por lo que en su lugar
usaremos corchetes. Entonces tenemos un punto decimal porque es un carácter
especial, como se puede ver en la parada de referencia
rápida. Tenemos que usar la
slash invertida antes de usarla. Ahora cerramos nuestro cuadradero. Ahora tenemos que poner un plus, lo que significa uno o
más ocurrencias. Ahora bien, si por alguna razón las ganancias de la compañía
se convirtieron en 10.400 millones, aún cuenta hasta
dos dígitos antes del punto decimal porque
especificamos eso usando
el signo más. Ahora peguemos esta expresión
regular y nuestro programa Python
y veamos si funciona. Ahora tomaremos el botón. Vamos a quitar esto. Ahora vamos a ejecutar nuestro programa. Y por supuesto, si no
queremos el signo del dólar, siempre
podríamos usar los corchetes
para capturar lo que queremos. Digamos que queremos igualar el año, el trimestre, y las
ganancias de eso aquí. ¿ Cómo hacemos eso usando la Droga X? Bueno, ya hicimos una expresión regular para igualar
el año y el trimestre. Así que utilicemos eso primero. Ahora, después de que llegue el trimestre, cualquier personaje antes de
llegar al signo del dólar. Por lo que escribiremos cualquier personaje
excepto el signo de dólar. Y ahora necesitamos
agregar un signo más para capturar uno o más ocurrencias. Ahora se igualó cualquier cosa hasta que se contrarreste,
un signo de dólar. Entonces eso es lo que queremos. Ahora volveremos a la expresión
regular que creamos antes para que coincida con el Anexo y pegarlo en
nuestra expresión. Ahora como se puede ver, se
iguala exactamente lo que queremos. Pero uno podría decir, bueno, no necesariamente
queremos que los textos entre los que dice que era, y fue simplemente se puede usar los corchetes para capturar exactamente
lo que queremos. Ahora, sólo captura
esos resultados. Así que volvamos a nuestros
programas de Python cómo se ve. Como se puede ver, está
funcionando como se pretendía. Y por supuesto, si no se
incluye el signo del dólar, podríamos simplemente incluirlo dentro de
nuestra expresión capturada. Mira el tipo, por ejemplo, las ganancias presentadas en miles de millones. Entonces eso es todo para el video de hoy. Muchas gracias por mirarte y espero
verte en la siguiente.
6. Clasificación de archivos de datos desordenados: Hola y bienvenidos de
nuevo a mi video. Hoy estaremos echando un
vistazo a cómo podemos ordenar un
archivo de texto sin clasificar usando RegEx. Entonces este es el expediente al que
vamos a echar un vistazo. El nombre del archivo es lista de datos. Lo tengo guardado en mi escritorio. Entonces cuando abrimos el archivo, tenemos tres
tipos diferentes de datos, nombre, correo electrónico y
números de teléfono en esta lista. El FirstName aquí pertenece
al primer correo electrónico aquí, y pertenece al
primer número aquí. De igual manera, el segundo
nombre pertenece
al segundo correo electrónico y
al segundo número, etcétera y así sucesivamente. Ahora el problema es que no están enumerados uno al lado del otro herida. Tengo esos valores uno
al lado del otro uno por uno. Obviamente, si
lo hicieras manualmente y colocarías el nombre al lado del primer correo electrónico en el primer número, te
llevaría una eternidad. Entonces, ¿cómo estructuramos esta
lista usando pocas líneas de código? Así que vayamos a
nuestro programa Python y echemos un vistazo para
empezar a usar RegEx. Lo primero que queremos
hacer es importar nuestra matriz. Entonces queremos abrir este archivo. Si quieres una explicación más
detallada de cómo manejar
archivos en Python, podrías revisar mi
clase en Manejo de Archivos. Entonces así es como abrimos
un archivo en Python. Así es como
abrirías un archivo si se guardara en el
mismo directorio que tu archivo Python. No obstante, nuestro archivo se
guarda en nuestro escritorio. Tenemos que especificar
la ubicación en nuestro programa para conocer la
ubicación de nuestro archivo de texto, solo nos
dirigiremos a la
ubicación donde se encuentra, luego haga clic con el botón derecho en Propiedades. Y aquí está la ubicación, solo
copiará pegarlo
en nuestro programa Python. Ahora tenemos que cambiar
esas barras invertidas, dos barras delanteras. Como se puede ver ahora
no está mostrando ningún adulto. Ahora estamos leyendo
este archivo y guardando su contenido a esta
variable llamada contenidos. Lo siguiente que
queremos hacer es crear patrones que coincidan con
los datos que tenemos. Por suerte, ya hemos creado botones para que coincidan con los correos electrónicos
y los números de teléfono, así que solo usaremos
esos desde que funcionan. Esas son las mismas que
usamos en las clases anteriores. Entonces este es el botón
que coincidiría con los correos electrónicos, y este es el botón que
coincidiría con los números de teléfono. No obstante, hay una
ligera diferencia. Si nos fijamos en los números, son similares a los nuestros, en los que empiezan
con paréntesis, entonces hay tres números, pero en lugar de un guión aquí, tienen un espacio. Entonces vamos a reemplazar esto
discontinuado por el espacio. Y luego tienen
tres números. Tenemos tres números
y luego un guión. Y luego por números. Entonces esto debería coincidir con los
números de nuestra lista, muy bien. Entonces esos dos botones deberían
estar funcionando bien. Ahora, un botón más
que necesitamos crear es el patrón de nombres
para que coincida con los nombres en la lista que no
hemos creado eso. Creamos ahora desde cero. Entonces si miramos los nombres de la lista, esencialmente lo que tenemos es cualquier letra mayúscula de la a la Z, y luego cualquier letra minúscula
de la a la Z, entonces un espacio. otra parte, cualquier
letra mayúscula de la A a la Z, y luego cualquier
letra minúscula de I2C. Entonces esto parece bastante
sencillo. Hagámoslo. Entonces
soy términos de Doug x, así es como se ve. Entonces este botón está
separado en dos partes, el FirstName y LastName. Y están separados por
un espacio entre ellos. El FirstName es cualquier letra
del mayúscula a la Z mayúscula, pero solo ocurre una vez, luego cualquier letra de
minúscula a z Esta vez agregamos un signo más porque podría
ocurrir una o más veces. Entonces si miramos nuestra lista, sólo
tenemos una letra mayúscula aquí y luego múltiples letras
minúsculas. Y esto es lo que dicen
nuestros botones. Una letra mayúscula, y luego cualquier número de
minúsculas. Entonces tenemos un espacio
entre ellos. Y luego otra vez el mismo botón, una letra mayúscula, y luego cualquier número de letras
minúsculas. Por lo que ahora tenemos listos nuestros
patrones. Vamos a elegir un método de búsqueda. Podríamos usar encontrar todos, o podríamos usar encontrar editor. Pero creo que encontrar S que sea
más adecuado en este caso. Así que vamos a crear un deudor fino
para cada patrón de vocales. Entonces aquí creamos un fondo. Es un objeto llamado emails, le dio el botón
que coincide con los correos electrónicos. Y luego especifique la cadena con la que
queremos emparejarla. En este caso, nuestra cadena o nuestros textos se almacena en esta
variable llamada content, que conduce desde nuestro archivo de texto. Lo mismo va con los teléfonos y los nombres. Entonces si tuviéramos que usar find
editor como solemos hacer, estos son los resultados que
vamos a conseguir. Entonces así es como
solemos usar encontrar mejor. Aquí está el objeto que queremos
iterar y decimos para cada elemento y correos electrónicos
imprimen cada elemento. Entonces vamos a ejecutar nuestro programa
y ver cómo se ve. Como se puede ver a las decenas, el objeto completo, sólo
necesitamos la cadena o
el correo electrónico coincidente. Para eso, vamos a
usar el método de grupo de puntos. Vamos a ejecutar nuestro programa. Ahora sólo está
devolviendo las cuerdas. Pero aún no hemos terminado. Esto esencialmente nos da el mismo archivo que
ya tenemos donde se listan
los correos electrónicos en un lugar y los nombres
se enumeran en otro. ¿ Cómo los enumeramos uno al
lado del otro? Podrías sugerir
que podríamos crear otro bucle for para
los teléfonos y nombres. Entonces, por ejemplo, vamos a
copiar pegar este teléfono. Teléfonos aquí. Lo siento. Y luego lo mismo para
los nombres, para los nombres. Entonces ponemos nombre aquí. Entonces vamos a ejecutarlo y
ver cómo se ve. Es. Esencialmente, se
ve exactamente como el mismo archivo que
tenemos que no funciona. O bien. Uno podría sugerir colocar esos cuatro lóbulos debajo del
otro tal vez. Entonces si quitamos el espacio aquí, luego resaltamos y presionamos Tab, y quitamos el espacio
resaltado y presionamos Detener. De acuerdo, así que ahora dentro uno
del otro, veamos cómo se ve. Ahora es aún peor porque
se imprime el primer correo electrónico que el
número de teléfono y luego los nombres y es solo un desastre. Pero no te preocupes, esas son
una herramienta específica para eso. Entonces esencialmente lo
que queremos hacer es iterar Correo electrónico, teléfono y nombre. Al mismo tiempo, no
queremos
iterar correos electrónicos por sí mismos que las
fuentes por sí mismas, los nombres por sí mismos. Queremos iterarlos
todos en el mismo for-loop. Para eso, vamos a usar ETL para usar Herramientas de Editor. Primero tenemos que importarlo, no te preocupes, no
tenemos que instalar nada. Viene por defecto con Python. Como se puede ver, se
sugiere que me lo dijo, ahora vamos a alejar un poco. Cierra esto. Vale, ahora que lo importamos, así es como lo
vamos a usar. Entonces vamos a escribir por nombre porque queremos
iterar sobre nombre. Y también queremos
iterar por correo electrónico. Y también queremos
iterar sobre la fuente. Y luego
vamos a teclear gzip. Y luego incluir los objetos que
vamos a iterar. Oh Dios mío, ¿qué está pasando? Entonces nombres, correos electrónicos, teléfonos. Oh, lo siento. Entonces por nombre en nombres
y por correo electrónico, en correos electrónicos y por
diversión y teléfonos. Entonces esto funciona igual que un bucle
regular for para nosotros, excepto que ahora podemos iterar
sobre múltiples objetos. Así que ahora imprimimos nuestros resultados. Imprimir nombre dot group, y luego nos envió por correo electrónico grupo. Entonces finalmente encontró eso. Entonces es muy similar
a la forma en que
iteraríamos sobre un objeto
usando un bucle regular for. Lo único que hay que recordar es
incluir todos esos objetos que
queremos iterar por dentro
del paréntesis zip. Ahora vamos a ejecutar nuestro programa
y ver cómo se ve. Eso se ve hermoso
exactamente como queríamos que fuera. Pero de nuevo, todavía no hemos terminado. Queremos escribir esos
resultados en un expediente. En lugar de simplemente
imprimirlas aquí en la terminal. Para eso, vamos a abrir un nuevo archivo de texto en modo de escritura, y vamos a nombrarlo datos ordenados. Por lo que f es igual a abierto. Entonces aquí vamos a
escribir el nombre del expediente. Lo vas a nombrar
ordenado TXT, y luego una coma. Y aquí especificamos el modo. Vamos a usar el modo W, que significa motor de bytes. Ahora sí, dice el modo Escribir, pero esta función abierta
creará un archivo para nosotros
si no existiera, y si hacia existir, sobrescribirá el
contenido de ese objeto. Entonces si lo dejamos como está, esto va a crear el
archivo aquí en nuestro espacio de trabajo. Lo vamos a crear
en nuestro escritorio de al lado, o archivo original para eso, vamos a especificar la misma
ubicación que se encuentra nuestro archivo. Entonces vamos a cubrir esta dislocación
y pegarla aquí. Ahora vamos a abrir este archivo, ahora
escribiremos en él. Así que vamos a cambiar nuestro bucle for
para escribir en lugar de imprimir. Entonces vamos a escribir F,
que es el nombre del archivo,
puntos, ¿verdad? Y eso es todo. Ahora, podríamos obtener un error aquí. Eso se debe a que el método write solo toma un parámetro, pero aquí colocamos
tres parámetros. Así que los coloquemos
en una cuerda f. Entonces f, entonces vamos
a empezar una cadena. Y esa cadena,
vamos a colocar esas variables
llamadas dots, cool. Después envía un correo electrónico al grupo. Entonces finalmente encontró su grupo. Entonces vamos
a terminar nuestra cuerda con otra
comilla doble. Ahora debemos estar configurados, pero antes de ejecutar nuestro programa, no olvidemos
cerrar nuestro expediente. Entonces vamos a escribir def, que es el nombre de nuestro expediente. Entonces vamos a ejecutar nuestro programa
y ver cómo se ve. Deberíamos ver un archivo
creado en nuestro escritorio. Porque no hay nada
tan determinante porque no
imprimimos nada. Pero si te diste cuenta aquí, dice datos ordenados, este es el archivo que creamos. Vamos a abrirla y echemos un vistazo. Es un poco ordenado los datos
para nosotros, pero no lo suficiente. Necesitamos colocar
una nueva línea después imprimir el nombre, el
correo electrónico y el teléfono. Entonces aquí, después de que escribimos nombre, correo electrónico y teléfono para crear
una nueva línea después de eso. Y ahora vamos a ejecutar nuestro programa. Y no te preocupes si volvemos a
ejecutar nuestro programa, no
va a
crear un nuevo archivo. En cambio, va a
sobrescribir nuestro archivo existente. Entonces vamos a ejecutar el programa y
echar un vistazo a nuestro archivo. Observe que nuestras comas
separando esos valores, es
decir porque los mantuvimos en nuestra cadena f, como se puede ver. Entonces si prefieres
no tenerlas, podrías quitar esas comas y tu programa
correrá muy bien. No obstante, creo que
es más fácil trabajar con datos cuando se
separan con comas. Opcionalmente, podríamos
etiquetar nuestros datos. Así que aquí vamos a
escribir nombre, luego un colon, luego un colon, luego finalmente
encendido, y luego un colon. Y ahora vamos a ejecutar nuestro programa
y ver cómo se ve. Esto se ve mucho más legible y mucho
más fácil de trabajar. Vamos a abrir el primer archivo junto a él y
compararlos juntos. La diferencia es día y
noche. Y lo hicimos. Y qué 15 líneas de
código menos el espaciado. Esto habría tardado mucho
tiempo en ordenarlo manualmente. Y también existe la
posibilidad de error humano, que podría ejecutar
toda la base de datos para nosotros. En cambio, con pocas líneas de código, dejamos que la máquina haga el trabajo y eliminamos la
posibilidad de faltar un valor o dos y crear un efecto bola de nieve
que ejecute nuestros datos. Así que recapitulemos nuestro código
que importamos o una droga X y editora herramientas para iterar
sobre múltiples objetos. Después abrimos el archivo
del que vamos a leer los datos y
especificar su ubicación y lo abrimos como
f. Luego creamos una variable y escribimos
contenidos iguales a F, F, que es nuestro archivo, el trato. Entonces esta variable de contenido
lee nuestro archivo de texto. Después creamos un patrón para
nuestro correo electrónico, teléfono y nombre. Después creamos
un hallazgo de correos electrónicos en un objeto y le dimos el
patrón que utiliza. Por lo que los correos electrónicos utilizan el botón de correo electrónico y lo
emparejamos con contenidos, que incluye los
datos y nuestro TextFile. Lo mismo va para las fuentes
y para los nombres. Después creamos un nuevo
archivo y lo abrimos en modo
W o modo de escritura y lo
nombramos datos ordenados. Y luego creamos un bucle for que iteraba sobre
tres objetos, nombres, correos electrónicos y teléfonos. Y luego los etiquetamos
como los escribimos en nuestro archivo de texto para tener un tiempo
más fácil dejarlos. Después de que escribimos en
nuestro expediente, lo cerramos. Entonces eso es todo para el video de hoy. Muchas gracias por mirarte y espero
verte en la siguiente.