Como usar expressões regulares (Regex) em Python
Domine expressões regulares do Python usando o módulo re integrado. Aprenda correspondência de strings, pesquisa de padrões, localização de todas as ocorrências e substituição de texto.
Visão geral
Expressões regulares, comumente conhecidas como regex, são modelos poderosos usados para combinar, pesquisar e manipular strings de texto com base em padrões específicos. Regex é amplamente usado para verificação de e-mail, validação de número de telefone, web scraping, análise de log e tarefas de pesquisa e substituição de texto. Python fornece recursos completos de regex por meio do módulo `re` integrado.
O módulo `re` oferece várias funções primárias dependendo do seu objetivo. A função `re.search(pattern, string)` verifica uma string e retorna um objeto de correspondência para a primeira ocorrência do padrão. A função `re.match(pattern, string)` é semelhante, mas pesquisa apenas desde o início da string. Se você deseja recuperar todas as instâncias de um padrão em um bloco de texto, `re.findall(pattern, string)` as retorna como uma lista de strings.
Os padrões Regex utilizam metacaracteres especiais como `\d` para dígitos, `\w` para caracteres alfanuméricos, `+` para uma ou mais ocorrências e `*` para zero ou mais. Ao escrever regex em Python, é prática padrão usar literais de string bruta (prefixados com `r`, como `r"\d+"`) para evitar que Python trate barras invertidas como sequências de escape.
Saída de código e execução
Este script demonstra a validação de estruturas de formato, a extração de tokens numéricos e a substituição de padrões correspondentes usando o módulo re.
import re
# 1. Searching for a pattern in text
log_message = "ERROR: Connection timeout at 04:30:15 on port 8080"
pattern_port = r"port \d+"
match = re.search(pattern_port, log_message)
if match:
print("Found port pattern:", match.group())
# 2. Extracting all email addresses from a block of text
text = "Contact sales@pyrun.xyz or support@example.com for help."
pattern_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(pattern_email, text)
print("Extracted emails:", emails)
# 3. Replacing patterns using re.sub
date_string = "2026/05/25"
# Replace slashes with dashes
clean_date = re.sub(r"/", "-", date_string)
print("Replaced Date:", clean_date)Found port pattern: port 8080
Extracted emails: ['sales@pyrun.xyz', 'support@example.com']
Replaced Date: 2026-05-25Implementação passo a passo
- Importe o módulo re integrado.
- Defina padrões de pesquisa regex usando strings brutas, como r"\d+" para evitar problemas de sequência de escape.
- Use re.search() para encontrar a primeira ocorrência ou re.findall() para coletar todas as substrings correspondentes.
- Use re.sub(pattern, replacement, string) para realizar substituições baseadas em padrões dentro do texto.
Perguntas frequentes
Qual é a vantagem de usar strings brutas (r"...") para padrões regex?
Strings brutas tratam barras invertidas como caracteres literais em vez de caracteres de escape. Por exemplo, r"\n" representa uma barra invertida seguida por um "n", enquanto "\n" representa um caractere de nova linha.
Como posso verificar se uma correspondência de regex foi bem-sucedida?
re.search() e re.match() retornam um objeto de correspondência se for bem-sucedido ou None se nenhuma correspondência for encontrada. Você deve verificar o resultado usando uma instrução condicional (por exemplo, if match:).
Tópicos Relacionados
Aprenda como substituir caracteres ou substrings em strings Python. Domine o método replace(), conte limites e use a tradução para vários caracteres.
Como dividir uma string em PythonAprenda como dividir uma string em uma lista em Python usando o método split(). Explore a divisão por espaços, vírgulas, novas linhas e a limitação da contagem de divisões.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Loops Python
Aprenda como usar loops Python para iterar dados. Domine as práticas recomendadas para loops for, while loops, break, continue e loop com exemplos interativos.
Folha de dicas dos métodos de string Python
Um guia de referência completo para manipulação de strings em Python. Domine a formatação, pesquisa, divisão, substituição e verificação de propriedades de string.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.