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

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more