DEV Community

welingtoncassis
welingtoncassis

Posted on

4 3

O poder das expressões regulares em Python

​​Expressões Regulares são padrões de caracteres que associam sequências de caracteres no texto e são essencialmente uma mini linguagem de programação altamente especializada que podem ser usadas para validar formato de email, senhas, cep, adicionar ou remover partes de uma string, etc. As ​​Expressões Regulares estão incluídas dentro do Python e disponíveis através do módulo ‘re’.

Neste tutorial irei criar uma simples extração do cep contido em uma string.

Primeiro vamos importar o módulo re:

import re
Enter fullscreen mode Exit fullscreen mode

Vamos assumir que a variável endereço tem o seguinte valor:

endereco = "Avenida Nossa Senhora de Copacabana 558, Copacabana, Rio de Janeiro, RJ, 22020-001"
Enter fullscreen mode Exit fullscreen mode

Eu quero extrair desta string que está na variável o CEP. Nós sabemos que o CEP é composto pelo seguinte padrão: 5 dígitos + hífen + 3 dígitos. Com isso vamos compilar esse padrão utilizando compile() do módulo re.

padrao = re.compile('[0123456789][0123456789][0123456789][0123456789][0123456789][-]?[0123456789][0123456789][0123456789]')
Enter fullscreen mode Exit fullscreen mode

O sinal de ? indica que o caracter - é opcional.

Com o padrão compilado agora podemos verificar se em algum trecho da string existe um combina com o nosso padrão e vamos utilizar o método search().

busca = padrao.search(endereco)
Enter fullscreen mode Exit fullscreen mode

Em caso de sucesso search() retorna o objeto Match ou caso não há nenhuma ocorrência do nosso padrão na string retorna None. Sendo assim, vamos verificar e extrair string encontrada em nosso padrão compilado que neste caso será a informação do CEP.

if busca:
    cep = busca.group()
    print(cep)
Enter fullscreen mode Exit fullscreen mode

Uma maneira mais simples e elegante de compilar este mesmo padrão para extrair o CEP pode ser escrita assim:

re.compile('[0-9]{5}[-]{0,1}[0-9]{3}')
Enter fullscreen mode Exit fullscreen mode

Onde colocamos entre - o intervalo, entre {} a quantidade ou limites como no caso do hífen.

As Regex pode desempenhar um papel importante na fase de pré-processamento de dados. A biblioteca ‘re’ fornece várias funções que a tornam uma habilidade que vale a pena dominar. Deixarei aqui alguns links que podem ajudar nesse aprendizado.

https://docs.python.org/pt-br/3/howto/regex.html#regex-howto
https://docs.python.org/pt-br/3/library/re.html#module-re

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay