Masterclass! Do iniciante ao avançado | Naser Jamal | Skillshare

Velocidade de reprodução


1.0x


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

Masterclass! Do iniciante ao avançado

teacher avatar Naser Jamal, Computer Engineer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Por expressões regulares?

      2:31

    • 2.

      Introdução - Verifique o e-mail dos usuários usando o Regex

      6:23

    • 3.

      Métodos para procurar partidas

      3:42

    • 4.

      Métodos para objetos de combinação

      3:30

    • 5.

      Como extrair dados úteis

      16:22

    • 6.

      Como ordenar arquivo de dados

      12:53

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

92

Estudantes

--

Projetos

Sobre este curso

Neste curso de Python, vamos aprender tudo sobre expressões regulares (Regex) em Python. expressões

regulares não são tão difíceis de dominar como parecem no início, então aperte para uma jornada de aprendizado 100% hands-on!

VOCÊ APRENDERÁ A:

  • Você vai aprender os fundamentos de expressões regulares em Python desde o início.
  • Você vai de iniciante para avançado em habilidades de correspondência de padrões em Python.
  • Você será capaz de aplicar essas habilidades para resolver problemas do mundo real.

Porque é que você iria fazer este curso?

  • Você quer automatizar tarefas que levariam horas em questão de segundos?
  • Você quer elevar suas habilidades de programação em Python sem gastar muito tempo?

  • Você já foi confuso pelo tópico Expressões regulares e queria um guia de aprendizado passo a passo detalhado?

  • Você quer fazer tarefas básicas para padrões compatíveis usando o poder incrível do Python?

Requisitos

  • Nenhum conhecimento de programação é necessário.
  • Não há necessidade de instalar python, você pode usar compiladores Python online.
  • Sistema operacional Windows/Linux/MacOS.


Expressões regulares podem ser usadas para pesquisa de padrões, desde validação de e-mails até correspondência a qualquer sequência de uma cadeia.
É uma ferramenta muito poderosa para combinar padrões de texto. Este curso cobre todas as suas necessidades para ter uma compreensão completa da expressão regular! Vamos aprender tudo isso através de processo passo a passo!

Conheça seu professor

Teacher Profile Image

Naser Jamal

Computer Engineer

Professor

Hello, I'm Naser.

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

Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Por que as expressões regulares?: Olá e seja bem-vindo à masterclass completa de expressões regulares Python. Esta aula é totalmente atualizada e interativa com aprendizado prático para ajudar a guiá-lo de 0 para herói e aprender Python RegEx. Por que expressões regulares? Python é uma das linguagens de programação mais populares e de crescimento mais rápido do mundo, e é projetado para crescer ainda mais no futuro. Então, se você está construindo sua carreira como programador ou cientista de dados e quer se diferenciar do resto da multidão aprendendo apenas uma habilidade técnica ou a expressão regular de Scalar . Então, o que você pode fazer com expressões regulares? Você pode automatizar tarefas que serão realizadas em questão de segundos. Você pode fazer tarefas avançadas de correspondência de botões usando o incrível poder do Python, você pode ler, saltar e reescrever dados de acordo com suas próprias necessidades. E a melhor coisa sobre isso é que é tão fácil e direto dentro de algumas linhas de código, você poderá fazer tarefas que levariam horas para serem feitas manualmente. E agora vamos executar nosso programa e ver como ele se parece. Isso parece muito mais legível e muito mais fácil de trabalhar. Vamos abrir o primeiro arquivo ao lado dele e combiná-los juntos. A diferença é dia e noite. Fizemos isso. E quais 15 linhas de código menos o espaçamento. Isso levaria muito tempo para classificá-lo manualmente. E há também a possibilidade de erro humano, que pode executar todo o banco de dados para nós. Em vez disso, com poucas linhas de código, deixamos a máquina fazer o trabalho e eliminar a possibilidade de perder um valor de dois e criar um efeito de bola de neve que executa nossos dados. Então, para quem é esse curso? Iniciantes que nunca programaram programadores provenientes de diferentes idiomas. Os programadores não são Python básico, mas querem elevar suas habilidades. Então, como são os custos reais? Vamos dar uma olhada primeiro. Vou lhe dar uma breve introdução sobre como usar o medicamento X em seu programa Python. Em seguida, escreveremos nosso primeiro padrão para verificar o e-mail do usuário usando RegEx. Em seguida, vamos dar uma olhada em diferentes métodos de pesquisa e combinar objetos e mostrar como eles funcionam resolvendo problemas. Em seguida, aprenderemos como extrair dados úteis e usaremos uma ferramenta que tornaria os padrões de correias muito, muito mais fáceis. Finalmente, teremos um exercício do mundo real onde teremos um arquivo solicitado a ler nele, classificar valores em uma ordem específica depois escrever a nova lista classificada e um arquivo diferente. Vamos passar por tudo isso e muito mais em tempo hábil. Esta classe deve ser curta, concisa e direta ao ponto. Você poderia perder menos tempo em teoria e mais tempo com experiência prática. Então, o que você está esperando? É hora de você levar suas habilidades de programação para o próximo nível, inscrever hoje e te vejo dentro do curso. 2. Introdução - Verifique o e-mail dos usuários usando o Regex: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada em expressões regulares. Expressões regulares ou regex podem ser usadas para verificar se uma string contém um padrão especificado. É uma ferramenta poderosa para encontrar padrões em um texto. Então, vamos dar uma olhada. Então, digamos, por exemplo, que queremos verificar o e-mail do usuário usando RegEx. A primeira coisa que temos que fazer para começar a usar o RegEx é importar o módulo RE. Agora suponha que este seja o endereço de e-mail que queremos verificar. Agora vamos criar um botão e definir as regras para esse botão que queremos verificar. Agora temos que dividir o endereço de e-mail em quatro partes para ter um melhor entendimento para a primeira parte, que está recebendo snap ou ID de usuário, ele pode conter um a Z e 0 a nove. No começo, usamos a cenoura ou o símbolo circunflexo para inicializar isso. Queremos combinar uma string que começa com o seguinte. E para acabar com esse padrão, usaremos o símbolo do dólar. Mas é claro que queremos adicionar mais cadeias de armazenamento de condições. Você não vai acabar com isso agora, a segunda coisa que digitamos isso de a a Z e 0 a nove. Isso significa que essa parte da string pode conter qualquer letra em qualquer número. Agora vamos digitar um símbolo de mais indicando que isso pode ocorrer uma ou mais vezes. O nome do destinatário também pode incluir símbolos como ponto, sublinhado e traço. Sublinhado e traço do período. Usamos a barra invertida para definir nossos caracteres especiais, ponto, sublinhado e traço. Usamos o ponto de interrogação aqui porque esses símbolos podem ser usados 0 ou um no máximo se ocorrerem duas vezes, que significa que é um e-mail inválido. É por isso que tivemos que especificar isso com um símbolo de ponto de interrogação. Agora, depois desses símbolos, você também pode ter quaisquer caracteres de a a Z e 0 a nove. Após os símbolos que especificamos, o período sublinhado e traço, podemos ter letras de a a Z ou números de 0 a nove. Assim mesmo. Mais uma vez, usaremos o símbolo de mais porque eles podem ocorrer mais de uma vez. Agora temos que escrever o símbolo de adição, que ocorre aqui. Então, após o símbolo de adição, teremos coisas como At Hotmail ou Gmail e assim por diante e assim por diante. Portanto, pode ser qualquer caractere alfanumérico. Então, após o anúncio Hotmail, chega o período. Então, temos que especificar isso. Agora, após o período, vem coisas como.com.net. Geralmente eles têm comprimento entre dois a três caracteres. Então, temos que especificar isso. Agora usaremos o símbolo do dólar para acabar com nossa string. Agora que nosso padrão foi feito, queremos receber informações do usuário solicitando que ele insira seu e-mail. Agora vamos criar um loop F para verificar o botão que eles nos usariam? E, portanto, o método re.search terá dois argumentos. O primeiro é o botão que criamos. A segunda é a entrada do usuário ou a string que queremos verificar. Então, vamos executar nosso programa e ver como ele se parece. Então, vamos digitar esse mesmo endereço de e-mail. Então eu acredito que o erro que cometi foi deixar um espaço aqui. E quando eu removo o espaço, ele funciona muito bem. Um mapa fonético de alto tipo em vez de genético. Então, vamos ver se inserimos um e-mail inválido de propósito, como genérico. E então usei outro e-mail simples e válido. Bem, pelo que parece, nosso programa funciona muito bem. Então, vamos dar uma olhada em outro exemplo. Digamos que queremos procurar um determinado botão na seguinte string. Então, parece que a maiúscula foi repetida duas vezes. E queremos verificar esse padrão em nosso distinto. Para fazer isso primeiro, definiremos nosso botão. Aqui. Usaremos o método de compilação. Também poderíamos usar o método de pesquisa como fizemos no exemplo anterior. Então R aqui antes da nossa string significa string raw, python, string raw trata barra invertida como um caractere literal. Isso é útil quando temos uma string que contém barra invertida n. Não quero que ela seja tratada como um caractere de escape. Então, vamos ver a diferença entre cordas regulares e cordas brutas. Então, o primeiro, que é uma string regular, tratou a barra invertida n como um caractere de escape. Nesse caso, ele é usado para iniciar uma nova linha. E, como você pode vê-lo, no entanto, na segunda string, que é uma string bruta, ela ignorou os usuários de barra invertida e a tratou como um caractere literal. Da mesma forma, se substituímos a barra invertida n por barra invertida x, teremos uma seta e a string regular porque a barra invertida x não tem um propósito. No entanto, nossa corda bruta, ignoraremos isso e imprimiremos assim como está. Então, vamos voltar à nossa string de teste. Agora vamos criar um objeto. Então, digitamos o botão que usaremos. Agora usaremos o método find. Dentro do método ETL definido, vamos digitar nossos testes encolher. Agora criamos um objeto chamado correspondências que podemos iterar usando fluxo suficiente. Como você pode ver, ele mostra duas ocorrências de um tempo mostrando sua posição. Além disso, é sensível a maiúsculas de minúsculas, o que significa que não captou a minúscula a. Também podemos tornar nosso código mais curto usando r e, encontrar Eta imediatamente. Por exemplo. Agora vamos digitar o botão que queremos procurar, que é a0. E então o segundo argumento passaremos a string que queremos testar. Como você pode ver, ele retorna os mesmos resultados com menos linhas de código. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 3. Métodos para procurar jogos: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada nos métodos para procurar correspondências. Então, no último vídeo, trabalhamos neste exemplo, que usou achar melhor. Existem outros métodos para procurar correspondências, como corresponder, pesquisar e encontrar todas. Então encontre-o para retornar um objeto com a posição da string que estávamos procurando. Localizar tudo no entanto, retorna apenas uma string, por exemplo. Então é isso que encontrar todos. O que há sobre o método de correspondência. O método de correspondência procura o botão apenas no início da string e retorna apenas a primeira ocorrência, por exemplo. Então, como você pode ver, ele não retornou a segunda ocorrência de a. Agora vamos mudar o botão. Queremos procurá-lo por algo diferente de um, por exemplo, como você pode ver, não retorna nenhum. Então, mesmo que cinco nonos oito tenham ocorrido em nossa corda, mas porque não estava no início, não é devolver nenhum. Então, e quanto à pesquisa? A pesquisa funciona muito semelhante para achar melhor. No entanto, retorna apenas a primeira ocorrência do padrão, por exemplo. Portanto, os quatro métodos de correspondência mais comuns, ou encontre uma busca melhor, encontre tudo e combine. Então, vamos dar uma olhada neste exemplo. Temos a seguinte string que diz $3 para a camisa, não usaríamos RegEx para verificar se a corda começa com um dígito. Nesse caso, são três. E se for esse o caso, imprimiremos esse dígito. Então, primeiro vamos importar RE. E então criaremos uma string e colocaremos esse texto dentro dela. Agora queremos criar um botão que queremos procurar. E vamos usar cordas cruas. Como de costume, vamos digitar a barra invertida do botão t. barra invertida d significa um dígito, que é exatamente o que temos aqui. Então, agora que criamos um botão, vamos criar um objeto de correspondência. Aqui passaríamos nosso botão, então passaremos em nossa corda. Agora podemos simplesmente dizer F, o que significa que se S for verdadeiro, então imprime o seguinte. Você pode perguntar, a cotação corresponde ao grupo de pontos, grupo é um método do objeto de correspondência. E o que ele simplesmente faz é que ele retorna a string correspondente, que neste caso é três. Vamos dar uma olhada mais nos métodos Match no próximo vídeo. Mas, por enquanto, o grupo retornará o número três para nós. Então, vamos executar nosso programa e ver como ele se parece. Então, mesmo que mudemos esse número para cinco, ele retornará cinco. Então, se não usarmos o método de grupo, isso é o que vamos conseguir. Você vai pegar o objeto de correspondência completa. Só queríamos a corda cinco. É por isso que usamos o método de grupo de pontos. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 4. Métodos para Objetos de Correspondência: Olá e bem-vindo de volta ao meu vídeo. Então, no último vídeo, vimos como se encontra com o retorno um objeto que poderíamos iterar usando loop suficiente. Portanto, esse objeto em si corresponde tem seus próprios métodos e vamos dar uma olhada neles. Esses são os métodos começam, crescem e se estendem. Então, como você pode ver quando imprimimos o resultado, ele retorna esse objeto. Só podemos imprimir a extensão aqui usando o span para isso, vamos usar a extensão de pontos de correspondência. Agora, quando executarmos nosso programa, teremos uma tupla contendo nossa extensão que isso pode ser útil se quisermos imprimir exatamente onde nosso padrão ocorreu. Por exemplo, como você pode ver, isso parece mais legível para o usuário. Se imprimirmos o tipo desse método de extensão de pontos de correspondência, descobriremos que é apenas uma tabela que inclui a posição, qual nossa correspondência ocorreu. Também podemos imprimir a posição inicial e final da nossa string usando o início e o fim. Então, vamos dar uma olhada. Combine, então, vírgula. Então, para retornar os números inteiros da nossa posição inicial e final, poderíamos fazer algo assim. E quando imprimirmos seu tipo, descobriremos que é apenas um número inteiro. Finalmente, se quisermos imprimir apenas a string que corresponderá, usaremos um grupo. E, como esperado, quando imprimimos seu tipo, passamos a saber que é uma string. Então, em conclusão, corresponde a um objeto que contém a extensão em que o padrão de barra de correspondência ocorreu. E também contém a string que foi correspondida. Podemos acessar componentes individuais dessa correspondência usando os métodos que passamos pelo método start para obter um inteiro aquela posição inicial na qual o padrão começou. Método para obter um número inteiro, a posição final na qual o botão terminou. Método de grupo para obter a string correspondente. E, finalmente, o método span para obter uma tabela que inclui a posição inicial e final do botão. Então é isso para o básico. E no próximo vídeo, veremos como podemos extrair dados úteis usando o X vermelho para fins de ciência de dados ou documentação. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 5. Extraindo Dados Úteis: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos aprender a extrair dados úteis e elevar nossas habilidades de expressão regular a um nível totalmente novo. Neste vídeo, usaremos uma ferramenta ou um site chamado beg x, one-on-one. É uma ferramenta muito poderosa que não só nos ensinará mais sobre RegEx, mas também simplificará o processo e visualizará o seguinte. Primeiro, clicaremos no bifan como nossa linguagem de programação com a qual estamos trabalhando. Agora suponha que temos a seguinte string. Então, dando uma olhada na string, temos dois números. Um é um número de telefone e o outro é um número de dois dígitos da empresa vende logo de cara. O que sabemos sobre números de telefone é que eles consistem em dez dígitos, modo que o diferencia facilmente do outro número aqui. Assim, podemos configurar nosso RegEx para extrair sempre que encontrar um número de sequência de dez dígitos. Então, quando passamos para a guia de referência rápida, podemos encontrar a sintaxe que precisamos caso a esquecamos. Então aqui diz barra invertida d significa qualquer dígito, ou em outras palavras, qualquer número. Então, vamos seguir em frente e usar isso. Como você pode ver quando, quando digitamos barra invertida d, Essas são as correspondências que recebemos. Basicamente, correspondia a todos os dígitos que temos. Agora, o que queremos combinar dois dígitos consecutivos, podemos vincular a dias de barra invertida. Agora ele corresponde a dois dígitos. Então, antes de termos 12 partidas, agora temos seis. Como ele não corresponde a cada dígito individual agora ele só corresponde a dois dígitos juntos como um. E se digitarmos três barras invertidas, só teremos duas partidas de três dígitos consecutivos. E como você pode ver, 20 milhões não correspondem porque é um número de dois dígitos, e assim por diante e assim por diante. Então, pode-se pensar quando Izzy, se um número de telefone com dez dígitos, poderíamos ficar dez barra invertida esses dois corresponder a essa sequência. Tecnicamente, eles não estão errados e isso funcionaria muito bem, por exemplo. Então, temos 345678910. Então, quando olhamos para as partidas, isso é o que vamos conseguir. Obviamente, há maneiras mais sofisticadas de fazer isso. Por exemplo, você pode ir para a guia de referência rápida. Tokens comuns encontrarão uma expressão que diz exatamente três de um, ou seja, exatamente três ocorrências da letra consecutivamente. Então, vamos tentar usá-lo a nosso favor. Então, logo de cara, não precisamos de um, queremos barra invertida d em vez disso. Então, digitamos barra invertida d e , em seguida, entre dois colchetes encaracolados entrará dez em vez de três. Agora, isso nos deu os mesmos resultados exatos com muito menos codificação. Claro, alguns podem dizer: Bem, números de telefone, ele será apresentado em formato diferente, por exemplo. Então, se quisermos extrair ou números de telefone e eles estão claramente em dois formatos diferentes. Poderíamos fazer o seguinte. Primeiro, vamos salvar nossa expressão aqui e voltaremos a ela mais tarde. Então, um dos bastões, nosso botão que queremos combinar começa com um colchete. No entanto, se digitarmos o pacote até uma expressão regular, teríamos um problema. E isso ocorre porque o suporte é um personagem especial e tem um significado para o nosso programa. Como você pode ver quando olhamos para a etapa de referência rápida, descobrimos que o suporte é usado para capturar tudo em colchete fechado, neste caso é chamado de caractere especial. Então, para usar um personagem especial, temos que escapar dele. E como escapamos dele? Simplesmente digitamos uma barra invertida antes dela. Por exemplo. Agora, como você pode ver, isso funciona bem e detectou nosso bolso aqui. Então, vamos continuar. Então, temos três dígitos após o suporte, vamos morrer. Mas no nosso botão, três dígitos. E, como você pode ver, ele detectou o número. Então, até agora tão bom. E novamente temos um suporte, mas podemos digitar os suportes imediatamente. Temos que escapar dele usando barra invertida. Agora temos um símbolo de traço. Então temos três dígitos, e depois um traço simples e, finalmente, quatro dígitos. Agora, como você pode ver, ele está combinando com nosso formato de número de telefone. Então acabamos com essa expressão, mas ainda temos nossa primeira expressão que é barra invertida d dez. Como dizemos ao nosso programa para procurar este botão ou esse padrão simplesmente, poderíamos usar o símbolo da barra vertical. Então, quando digitamos a pesquisa aqui, ou obtemos essa correspondência alternativa, a ou B. Então, vamos usar o simples. Em seguida, vamos colar nossa expressão aqui. E, como você pode ver, detectou os dois. Então, diz que procure esse padrão ou esse botão. Então, se quisermos usar isso em nosso programa Python, poderíamos fazer o seguinte. Então, primeiro importamos nosso medicamento X. Em seguida, fazemos uma string para conter nosso texto. Agora criamos um bastão. E chamamos o melhor o botão que criamos. Agora vamos usar encontrar todos vão primeiro digitar nosso padrão. Em seguida, o texto que queremos corresponder. Agora simplesmente imprimimos a correspondência. Vejamos os resultados. Como você pode ver, funciona muito bem. Portanto, sempre podemos usar RegEx one-on-one para criar nossa expressão e testá-la antes aplicá-la aqui no Python, isso torna as coisas muito mais fáceis porque visualiza o processo para nós e nos mostra o que está sendo igualado em tempo real. Então, agora, para o nível dois, temos esse bloco de texto gigante e queremos extrair os títulos dele. Portanto, os títulos aqui são nosso propósito e nossa oportunidade. E queremos extrair a dose. Então, para começar, podemos digitar nota porque eles começam com nada. E depois há um espaço, depois um número. Agora capturamos a nota um e n2, mas ainda queremos capturar o texto que vem depois dele. Se você olhar de perto, verá que o título termina com uma nova linha sendo criada aqui e aqui. E sabemos que uma nova linha significa barra invertida em Python. Queremos capturar todos os textos até encontrarmos uma nova linha. A questão permanece: como digitamos isso em expressão regular? Então, se olharmos aqui para a parada rápida de referência, ela diz qualquer caractere, exceto a, B ou C. Então, vamos abrir um novo doc x começar a experimentar. Então, digamos que temos o seguinte texto e queremos dizer que corresponda a todos os caracteres, exceto o sinal de porcentagem, o sinal de igual. Então, vamos digitar o seguinte. Como você pode ver, ele combinava com tudo, exceto aquelas amostras. E para fazer uma sequência, adicionamos um sinal de mais no final da nossa expressão. Agora diz um ou mais personagens até você encontrar um desses sinais. Então, isso é o que o sinal de mais significa. Uma ou mais ocorrências de um, qualquer caractere que você especificar. Agora, voltando aos nossos textos, vamos aplicar o que aprendemos. Ok, então agora temos um número, então temos um espaço. Então, adicionaremos um espaço. Então vamos tentar essa expressão. Qualquer coisa, exceto uma nova linha. Ele só combina com o primeiro personagem e pára. Em vez disso, queríamos capturar um ou mais personagens. Para isso, usaremos o sinal de mais. E quando vamos para o tipo de referência rápida e tipo de um ou mais, podemos usar o sinal de mais para ele. Também poderíamos usar o signo estelar, o que significa 0 ou mais ocorrências. E isso nos daria os mesmos resultados. Agora, quando vamos para as informações da partida, podemos ver que elas funcionam, mas ainda não terminamos porque queremos capturar os títulos e nem um e o nó dois não fazem parte de nossos títulos. Para isso, usaremos colchetes. Como você pode ver, diz capturar tudo incluído. Então, quando vamos para nossa expressão, esta é exatamente a expressão que começou a capturar o título aqui. Então, vamos colocar colchetes em torno dessa expressão. Agora, o que ele faz é que, grupos são capturados esses resultados para nós. Agora, o que acontece é que ele corresponde outros resultados, como o nó um e o nó dois. Então, vamos usar isso em nosso código Python. E para copiar colar esse bloco gigante de texto, usaremos três aspas simples para explicar a barra invertida n ou novas linhas em nosso texto. Então, em vez desse método antigo, usaremos três aspas, 123, então vamos basear nosso texto e, em seguida, usaremos outras três aspas. Agora vamos copiar nossa expressão regular que escrevemos e a baseamos no padrão. Como você pode ver quando executamos o programa, ele só retorna o título é para nós sem nenhum, nem dois. E agora, para o nível três, temos um bloco de texto relativamente pequeno. No entanto, vamos extrair muitas informações disso. Então, se dermos uma olhada nas informações úteis aqui, podemos ver que os ganhos foram fornecidos no seguinte formato. ano fiscal FY então seguido pelo ano, neste caso, é 2021 ou 2020, e depois um espaço e depois o tribunal naquele ano. Nesse caso, isso é Q1 e isso é q4. Então, sabemos que em um ano só pode haver quatro trimestres, Q1, Q2, Q3 e Q4. Não pode haver um Q5. Então, vamos ter isso em mente. Então, logo de cara, nosso padrão começa com o FY. Então, vamos digitar FY. Então, obviamente, há quatro dígitos, que neste caso é o ano. E como fazemos isso? Usamos barra invertida d. E, em seguida, entre os colchetes encaracolados, digitamos quatro. Portanto, essa expressão significa f y seguida de quatro dígitos ou números de telefone. Até agora tão bom. E depois há um espaço depois, antes do Q1 e Q4. Temos que especificar isso em nossa expressão regular. Então, vamos digitar um espaço. Depois, há uma fila. Então, agora a fila é seguida por um dígito. No entanto, não podemos simplesmente digitar slash d porque isso incluiria coisas como as quais, neste caso, estão erradas. Então, queremos garantir que nossos dígitos sejam de um a quatro. Como fazemos isso? Se olharmos para a guia de referência rápida, há essa opção que diz um único caractere de a, B ou C. Você pode especificar explicitamente os números que deseja incluir, que é 1234. Mas há uma abordagem melhor. Poderíamos usar essa opção no carimbo de referência rápida que diz um caractere no intervalo de a Z. Agora poderíamos digitar de um a quatro, e isso nos daria os mesmos resultados com menos codificação. Então, agora vamos testar nosso padrão e Python, nós me chamamos de eu adoro texto e o baseamos neste texto de nome. E então copiamos nosso padrão e o baseamos no padrão, nosso programa Python. E agora vamos executar o programa para ver os resultados. Então, e se um dos voos fosse minúsculo, mas ainda quisermos igualar isso de qualquer maneira, poderíamos fazer o seguinte. Lags é igual a ignorar o estojo. Agora, quando imprimimos os resultados, como você pode ver, eles correspondem às minúsculas f, y. E digamos que não queremos incluir o FY, que significa ano fiscal, Simplesmente, poderíamos usar os colchetes para capturar e reter apenas as peças que queremos. Então, por exemplo, agora, quando executamos nosso programa, podemos vê-lo, ele só capturou as peças com especificadas dentro dos colchetes. Então, vamos voltar para RegEx um-a-um. Poderemos igualar o ano e seus trimestres. No entanto, ainda queremos igualar os ganhos desse conjunto aqui. E suponha que tivéssemos outros números e nossos textos que queremos evitar, por exemplo. Então, vamos salvar nossa expressão aqui. Não queremos capturar esse número. Só queremos capturar os números que começam com um cifrão. No entanto, não podemos simplesmente digitar o cifrão, pois é um personagem especial. Isso significa o fim de uma string, como você pode ver na guia de referência rápida na parte inferior. Então, como é um personagem especial, sabemos que temos que usar a barra invertida para escapar desse caractere especial antes de usá-lo. Agora é compatível com o que queremos. Agora temos um dígito depois disso, para que possamos digitar barra invertida d. No entanto, há um ponto decimal depois disso, então, em vez disso, usaremos colchetes. Então temos um ponto decimal porque é um personagem especial, como você pode ver na parada de referência rápida. Temos que usar a barra invertida antes de usá-la. Agora fechamos nosso suporte quadrado. Agora precisamos colocar um plus, o que significa uma ou mais ocorrências. Agora, se por algum motivo os ganhos da empresa se tornaram 10,4 bilhões, ele ainda conta até dois dígitos antes do ponto decimal porque especificamos isso usando o sinal de mais. Agora vamos colar essa expressão regular e nosso programa Python e ver se ela funciona. Agora vamos pegar o botão. Vamos remover isso. Agora vamos executar nosso programa. E, claro, se não quisermos o cifrão, sempre poderíamos usar os colchetes para capturar o que queremos. Digamos que queremos igualar o ano, o trimestre e os ganhos disso aqui. Como fazemos isso usando o Drug X? Bem, já fizemos uma expressão regular para corresponder ao ano e ao trimestre. Então, vamos usar isso primeiro. Agora, após o trimestre chegar, qualquer personagem antes de chegarmos ao cifrão. Então, vamos digitar qualquer caractere , exceto o cifrão. E agora precisamos adicionar um sinal de mais para capturar uma ou mais ocorrências. Agora ele correspondeu a qualquer coisa até que seja contrariado, um cifrão. Então é isso que queremos. Agora vamos voltar à expressão regular que criamos anteriormente para corresponder ao Anexo e colá-lo em nossa expressão. Agora, como você pode ver, combina exatamente com o que queremos. Mas pode-se dizer, bem, não queremos necessariamente que os textos entre o que diz era, e foi simplesmente que você pode usar os colchetes para capturar exatamente o que queremos. Agora, ele só captura esses resultados. Então, vamos voltar aos nossos programas Python como ele se parece. Como você pode ver, está funcionando como pretendido. E, claro, se você não incluir o cifrão, poderíamos apenas incluí-lo dentro da nossa expressão capturada. Veja o tipo, por exemplo, os ganhos apresentados em bilhões. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 6. Ordenar Arquivo de Dados Não Ordenados: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada em como podemos classificar um arquivo de texto não classificado usando RegEx. Então este é o arquivo que vamos dar uma olhada. O nome do arquivo é lista de dados. Eu o tenho salvo na minha área de trabalho. Então, quando abrimos o arquivo, temos três tipos diferentes de dados, nome, e-mail e números de telefone nesta lista. O FirstName aqui pertence ao primeiro e-mail aqui e pertence ao primeiro número aqui. Da mesma forma, o segundo nome pertence ao segundo e-mail e ao segundo número, e assim por diante. Agora o problema é que eles não estão listados um ao lado do outro ferimento. Eu tenho esses valores um ao lado do outro, um por um. Obviamente, se você fizer isso manualmente e colocar o primeiro nome ao lado do primeiro e-mail no primeiro número, isso levaria você para sempre. Então, como estruturamos essa lista usando poucas linhas de código? Então, vamos ao nosso programa Python e dar uma olhada para começar a usar o RegEx. A primeira coisa que queremos fazer é importar nossa matriz. Então, queremos abrir esse arquivo. Se você quiser uma explicação mais detalhada de como lidar com arquivos no Python, você pode verificar minha classe sobre Manipulação de arquivos. Então é assim que abrimos um arquivo em Python. É assim que você abriria um arquivo se ele fosse salvo no mesmo diretório do arquivo Python. No entanto, nosso arquivo é salvo em nossa área de trabalho. Temos que especificar a localização em nosso programa para saber a localização do nosso arquivo de texto, vamos apenas para o local onde ele está localizado e, em seguida, clique com o botão direito do mouse em Propriedades. E aqui está o local, basta copiar colá-lo em nosso programa Python. Agora temos que mudar essas barras invertidas, duas barras para frente. Como você pode ver agora, não está mostrando adultos. Agora estamos lendo esse arquivo e salvando seu conteúdo para essa variável chamada conteúdo. A próxima coisa que queremos fazer é criar padrões que correspondam aos dados que temos. Felizmente, já criamos botões para corresponder e-mails e números de telefone, então vamos usá-los desde que eles funcionam. Esses são os mesmos que usamos nas classes anteriores. Portanto, esse é o botão que corresponderia aos e-mails, e esse é o botão que corresponderia aos números de telefone. No entanto, há uma pequena diferença. Se você olhar para os números, eles são semelhantes aos nossos, nos quais eles começam com parênteses, então há três números, mas em vez de um traço aqui, eles têm um espaço. Então, vamos substituir esse tracejado pelo espaço. E então eles têm três números. Temos três números e depois um traço. E depois para números. Então, isso deve corresponder aos números da nossa lista, muito bem. Então, esses dois botões devem estar funcionando muito bem. Agora, mais um botão que precisamos criar é o padrão de nome para corresponder aos nomes na lista que não criamos isso. Criamos agora do zero. Então, se olharmos para os nomes das listas, essencialmente o que temos é qualquer letra maiúscula de a a Z e, em seguida, qualquer letra minúscula de a a Z, depois um espaço. Então, novamente, qualquer letra maiúscula de a a Z e, em seguida, qualquer letra minúscula da I2C. Então, isso parece bem direto. Vamos fazer isso. Então eu sou termos Doug x, é assim que se parece. Portanto, esse botão é separado em duas partes, o FirstName e o LastName. E eles estão separados por um espaço entre eles. O FirstName é qualquer letra de a maiúscula a Z maiúscula, mas ocorre apenas uma vez, depois qualquer letra de minúscula a a z. Desta vez, adicionamos um sinal de mais porque pode ocorrer uma ou mais vezes. Então, se olharmos para a nossa lista, só temos uma letra maiúscula aqui e, em seguida, várias letras minúsculas. E é isso que nossos botões dizem. Uma letra maiúscula e, em seguida, qualquer número de letras minúsculas. Então temos um espaço entre eles. E então o mesmo botão novamente, uma letra maiúscula e, em seguida, qualquer número de letras minúsculas. Então, agora temos nossos padrões prontos. Vamos escolher um método de pesquisa. Poderíamos usar encontrar tudo, ou podemos usar o editor de busca. Mas acho que o S é mais adequado neste caso. Então, vamos criar um bom devedor para cada padrão de vogal. Então aqui criamos um fundo. É um objeto chamado e-mails, deu a ele o botão que corresponde aos e-mails. E, em seguida, especifique a string com a qual queremos combiná-la. Nesse caso, nossa string ou nossos textos são armazenados nessa variável chamada conteúdo, que leva do nosso arquivo de texto. O mesmo acontece com telefones e nomes. Então, se usássemos o editor de busca como costumamos fazer, esses são os resultados que vamos obter. Então, é assim que costumamos usar encontrar melhor. Aqui está o objeto que queremos iterar e dizemos que para cada item e e-mails imprimem cada item. Então, vamos executar nosso programa e ver como ele se parece. Como você pode vê-lo para as dezenas, o objeto completo, só precisamos da string ou do e-mail correspondente. Para isso, vamos usar o método de grupo de pontos. Vamos executar nosso programa. Agora só está retornando as cordas. Mas ainda não terminamos. Isso é essencialmente dado a nós o mesmo arquivo que já temos onde os e-mails estão listados em um lugar e os nomes estão listados em outro. Como os listamos um ao lado do outro? Você pode sugerir que poderíamos criar outro loop for para os telefones e nomes. Então, por exemplo, vamos apenas copiar colar este telefone. Telefones aqui. Desculpe. E, em seguida, o mesmo para nomes, para nomes de nomes. Então colocamos o nome aqui. Então, vamos executá-lo e ver como ele se parece. É. Essencialmente, ele se parece exatamente o mesmo arquivo que temos que não funciona. Ou seja. Pode-se sugerir colocar esses quatro lóbulos um embaixo do outro talvez. Portanto, se removermos o espaço aqui, em seguida, destacamos e pressione Tab, e remova o espaço destacado e pressione Parar. Ok, então agora dentro um do outro, vamos ver como se parece. Agora é ainda pior porque é impresso o primeiro e-mail do que o número de telefone e, em seguida, os nomes e está apenas uma bagunça. Mas não se preocupe, essas são ferramentas específicas para isso. Então, essencialmente, o que queremos fazer é iterar e-mail, telefone e nome. Ao mesmo tempo, não queremos iterar e-mails sozinhos do que fontes sozinhas , os nomes por si mesmos. Queremos iterá-los todos no mesmo loop for-loop. Para isso, usaremos as ferramentas ETL para usar o Editor Tools. Primeiro, temos que importá-lo, não se preocupe, não precisamos instalar nada. Ele vem por padrão com Python. Como você pode ver, é sugerido que me disse, agora vamos diminuir um pouco. Feche isso. Ok, agora que o importamos, é assim que vamos usá-lo. Então, vamos digitar para nome porque queremos iterar sobre o nome. E também queremos iterar por e-mail. E também queremos iterar sobre a fonte. E então vamos digitar gzip. E, em seguida, inclua os objetos que vamos iterar. Meu Deus, o que está acontecendo? Então, nomes, e-mails, telefones. Oh, desculpe. Então, para nome em nomes e e-mail, e-mails e diversão e telefones. Então, isso funciona como um loop for regular para nós, exceto que agora podemos iterar sobre vários objetos. Então, agora vamos imprimir nossos resultados. Imprimir grupo de pontos de nome e, em seguida, enviou-nos um e-mail para o grupo. Então, finalmente, descobri isso. Portanto, é muito semelhante à maneira como iríamos iterar sobre um objeto usando um loop for regular. A única coisa a lembrar é incluir todos os objetos que queremos iterar dentro do parêntese zip. Agora vamos executar nosso programa e ver como ele se parece. Isso parece lindo exatamente como queríamos que fosse. Mas, novamente, ainda não terminamos. Queremos gravar esses resultados em um arquivo. Em vez de apenas imprimi-los aqui no terminal. Para isso, vamos abrir um novo arquivo de texto no modo de gravação e vamos nomear os dados classificados. Então f é igual a aberto. Então aqui vamos digitar o nome do arquivo. Você vai nomeá-lo como TXT classificado, e depois uma vírgula. E aqui especificamos o modo. Vamos usar o modo W, o que significa motor de bytes. Agora sim, ele diz Modo de gravação, mas essa função aberta criará um arquivo para nós se ele não existir, e se ele for para existir, substituirá o conteúdo desse objeto. Então, se deixarmos como está, isso criará o arquivo aqui em nosso espaço de trabalho. Vamos criá-lo em nossa área de trabalho ao lado, ou no arquivo original para isso, vamos especificar o mesmo local em que nosso arquivo está localizado. Então, vamos cobrir essa luxação e colá-la aqui. Agora vamos abrir esse arquivo, agora vamos escrever nele. Então, vamos mudar nosso loop for para escrever em vez de imprimir. Então vamos digitar F, qual é o nome do arquivo, pontos, certo? E é isso. Agora, podemos receber um erro aqui. Isso ocorre porque o método de gravação usa apenas um parâmetro, mas colocamos aqui três parâmetros. Então, vamos colocá-los em uma string f. Então f, então vamos começar uma string. E essa string, vamos colocar essas variáveis chamadas pontos, legal. Em seguida, envie um e-mail ao grupo. Então, finalmente, encontrei seu grupo. Então vamos terminar nossa string com outra aspas duplas. Agora devemos estar configurados, mas antes de executarmos nosso programa, não vamos esquecer de fechar nosso arquivo. Então, vamos digitar def, que é o nome do nosso arquivo. Então, vamos executar nosso programa e ver como ele se parece. Devemos ver um arquivo criado em nossa área de trabalho. Porque não há nada tão determinante porque não imprimimos nada. Mas se você notou aqui, ele diz dados classificados, este é o arquivo que criamos. Vamos abri-lo e dar uma olhada. É meio que ordenou os dados para nós, mas não o suficiente. Precisamos colocar uma nova linha depois imprimir o nome, e-mail e telefone. Então, aqui, depois de escrevermos nome, e-mail e telefone para criar uma nova linha depois disso. E agora vamos executar nosso programa. E não se preocupe se executarmos nosso programa novamente, ele não criará um novo arquivo. Em vez disso, ele substituirá nosso arquivo existente. Então, vamos executar o programa e dar uma olhada em nosso arquivo. Observe que nossas vírgulas separando esses valores, isso é porque os mantivemos em nossa string f, como você pode ver. Então, se você preferir não tê-las, você pode remover essas vírgulas e seu programa funcionará muito bem. No entanto, acho que é mais fácil trabalhar com dados quando eles são separados por vírgulas. Opcionalmente, poderíamos rotular nossos dados. Então aqui vamos digitar nome, depois dois pontos, depois dois pontos, depois, finalmente , e depois dois pontos. E agora vamos executar nosso programa e ver como ele se parece. Isso parece muito mais legível e muito mais fácil de trabalhar. Vamos abrir o primeiro arquivo ao lado dele e compará-los juntos. A diferença é dia e noite. E nós fizemos isso. E quais 15 linhas de código menos o espaçamento. Isso levaria muito tempo para classificá-lo manualmente. E há também a possibilidade de erro humano, que pode executar todo o banco de dados para nós. Em vez disso, com poucas linhas de código, deixamos a máquina fazer o trabalho e eliminar a possibilidade de perder um valor ou dois e criar um efeito de bola de neve que executa nossos dados. Então, vamos recapitular nosso código que importamos ou um medicamento X e ferramentas de editor para iterar sobre vários objetos. Em seguida, abrimos o arquivo do qual vamos ler os dados e especificar sua localização e abri-lo como f. Em seguida, criamos uma variável e digitamos conteúdo igual a F, F, que é nosso arquivo, o tratamento. Portanto, essa variável de conteúdo lê nosso arquivo de texto. Em seguida, criamos um padrão para nosso e-mail, telefone e nome. Em seguida, criamos um e-mail encontrado em um objeto e demos o padrão que ele usa. Portanto, os e-mails usam o botão de e-mail e combinamos com o conteúdo, que inclui os dados e nosso TextFile. O mesmo vale para fontes e para nomes. Em seguida, criamos um novo arquivo e o abrimos no modo W ou no modo de gravação e nomeamos dados classificados. E então criamos um loop for que itera sobre três objetos, nomes, e-mails e telefones. E então nós os rotulamos enquanto os escrevemos em nosso arquivo de texto para ter um tempo mais fácil deixá-los. Depois de escrevermos em nosso arquivo, nós o fechamos. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo.