¡Masterclass de expresiones regulares de Python! De principiante a avanzado | Naser Jamal | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

¡Masterclass de expresiones regulares de Python! De principiante a avanzado

teacher avatar Naser Jamal, Computer Engineer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      ¿Por qué las expresiones regulares?

      2:31

    • 2.

      Introducción - Verificar por correo electrónico de los usuarios

      6:23

    • 3.

      Métodos para buscar partidos

      3:42

    • 4.

      Métodos para objetos de partido

      3:30

    • 5.

      Cómo extraer datos útiles

      16:22

    • 6.

      Cómo ordenar archivos de datos

      12:53

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

92

Estudiantes

--

Proyectos

Acerca de esta clase

En esta clase de Python aprenderemos todo sobre las expresiones regulares (Regex) en

Python. Las expresiones regulares no son tan difíciles de dominar como parecen, así que ¡abróchate para un viaje de aprendizaje práctico al 100%!

VAS A APRENDER A:

  • Aprenderás los fundamentos de las expresiones regulares en Python
  • Podrás pasar de principiante a avanzado en habilidades de ajuste de patrones en Python.
  • Podrás aplicar esas habilidades para resolver problemas en el mundo real.

¿Por qué vas a tomar esta clase?

  • ¿Quieres poder automatizar tareas que tardarían horas en cuestión de segundos?
  • ¿Quieres aumentar tus habilidades de programación de Python sin pasar demasiado tiempo?

  • ¿Alguna vez te han confundido el tema de Expresiones regulares y quieres una guía detallada de aprendizaje paso a paso?

  • ¿Quieres poder hacer tareas básicas a avanzadas de ajuste de patrones?

Requisitos

  • No se requieren conocimientos de programación.
  • No necesitas instalar python, puedes usar compiladores en línea de Python.
  • Sistema operativo Windows / Linux / MacOS.


Las expresiones regulares pueden usarse para búsquedas de patrones, desde la validación de correos electrónicos hasta la secuencia de una cadena.
Es una herramienta muy poderosa para combinar patrones de texto. Esta clase cubre todas tus necesidades para tener una comprensión completa de la expresión regular. ¡Aprenderemos todo eso a través de un proceso paso a paso!

Conoce a tu profesor(a)

Teacher Profile Image

Naser Jamal

Computer Engineer

Profesor(a)

Hello, I'm Naser.

I try to simplify complicated programming topics and present them into short and bite-sized videos!

Ver perfil completo

Habilidades relacionadas

Desarrollo Lenguajes de programación Python
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

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.