DEV Community

welingtoncassis
welingtoncassis

Posted on

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

Discussion (0)