O poder das expressões regulares em Python
welingtoncassis
Posted on March 17, 2022
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
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"
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]')
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)
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)
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}')
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
Posted on March 17, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.