Introdução
Expressões regulares (regex) são uma ferramenta poderosa para pesquisar, corresponder e manipular texto usando padrões. O módulo re
integrado ao Python oferece suporte robusto para regex, permitindo que você execute tarefas complexas de processamento de texto com eficiência. Neste tutorial, abordaremos os conceitos básicos de regex, exploraremos padrões comuns e demonstraremos exemplos práticos de correspondência de padrões e validação de dados.
O que são expressões regulares?
Expressões regulares são sequências de caracteres que definem um padrão de pesquisa. Eles são amplamente usados para tarefas como:
- Validando entradas (por exemplo, endereços de e-mail, números de telefone)
- Pesquisando e extraindo padrões específicos de texto
- Substituindo ou modificando substrings dentro de uma string maior
Sintaxe básica e funções no módulo re
do Python
O módulo re
do Python oferece várias funções importantes:
re.search()
: Procura um padrão em qualquer lugar da string.
re.match()
: Verifica se há correspondência apenas no início da string.
re.findall()
: Retorna uma lista de todas as correspondências não sobrepostas.
re.sub()
: Substitui ocorrências de um padrão por uma string especificada.
re.split()
: Divide uma string pelas ocorrências de um padrão.
Exemplos práticos
Procurando um padrão
Use re.search()
para localizar um padrão em uma string:
#| label: regex-search
import re
= "The quick brown fox jumps over the lazy dog."
text = r"fox"
pattern = re.search(pattern, text)
match if match:
print("Match found:", match.group())
else:
print("No match found.")
Resultados:
Correspondência encontrada: fox
Encontrando todas as ocorrências
Use re.findall()
para extrair todas as correspondências de um padrão:
#| label: regex-findall
import re
= "apple, banana, cherry, apple, banana"
text = r"apple"
pattern = re.findall(pattern, text)
matches print("All matches:", matches)
Resultados:
Todas as correspondências: ['apple', 'apple']
Substituindo padrões
Use re.sub()
para substituir padrões correspondentes por uma nova string:
#| label: regex-sub
import re
= "The price is $100. The discount price is $80."
text = r"\$\d+"
pattern = re.sub(pattern, "REDACTED", text)
new_text print("Updated text:", new_text)
Resultados:
Texto atualizado: o preço foi REDIGIDO. O preço com desconto foi REDIGIDO.
Usando grupos para extração
Grupos permitem extrair partes específicas de um padrão:
#| label: regex-groups
import re
= "My email is alice@example.com."
text = r"(\w+)@(\w+\.\w+)"
pattern = re.search(pattern, text)
match if match:
= match.groups()
username, domain print("Username:", username)
print("Domain:", domain)
Resultados:
Nome de usuário: alice
Domínio: example.com
Dicas e melhores práticas
Mantenha a simplicidade:
Comece com padrões simples e aumente gradualmente a complexidade. Expressões regulares muito complexas podem ser difíceis de ler e manter.Teste seus padrões:
Use ferramentas online como regex101.com para testar e depurar suas expressões regulares de forma interativa.Documente sua expressão regular:
Ao escrever padrões complexos, adicione comentários ou divida-os em partes menores para maior clareza.Use strings brutas:
Prefix regex patterns withr
to avoid issues with escape sequences (e.g.,r'\d+'
).
Conclusão
As expressões regulares são uma ferramenta indispensável para o processamento de texto em Python. Ao dominar os conceitos básicos e experimentar exemplos práticos, você poderá validar entradas, extrair dados significativos e transformar texto de maneira eficiente para atender às suas necessidades. Com a prática, você descobrirá que regex pode simplificar muito muitas tarefas comuns de processamento de texto.
Leitura adicional
- Lidando com E/S de arquivos em Python: ler, gravar e processar arquivos
- Guia completo para estruturas de dados Python
- Introdução a algoritmos e estruturas de dados em Python
Boa programação e aproveite o poder das expressões regulares em Python!
Explore mais artigos
Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.
Reuso
Citação
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Introdução às expressões regulares em Python},
date = {2024-02-09},
url = {https://www.datanovia.com/pt/learn/programming/python/additional-tutorials/regex.html},
langid = {pt}
}