Python Regex: correspondência de padrões com o módulo re
Domine Expressões Regulares (Regex) em Python. Aprenda a pesquisar, combinar, dividir e substituir dados de string usando a biblioteca re integrada.
Visão geral
Expressões regulares (geralmente abreviadas para regex) são uma minilinguagem usada para pesquisa avançada de texto, correspondência de strings e manipulação. Em vez de verificar valores de string simples, o regex permite definir padrões complexos para pesquisar dentro de grandes corpos de texto. Por exemplo, encontrar todos os endereços de e-mail, números de telefone ou URLs em um documento é simples de expressar em regex, mas incrivelmente complexo de escrever usando métodos normais de string.
Python fornece suporte integrado para expressões regulares por meio do módulo `re`. O módulo inclui funções críticas como `re.search()` para encontrar a primeira correspondência, `re.findall()` para recuperar todas as substrings correspondentes como uma lista e `re.finditer()` para iterar sobre objetos de correspondência. Cada objeto de correspondência fornece metadados, como o índice exato de posição inicial e final da substring correspondente e o próprio texto correspondente.
Os padrões Regex utilizam metacaracteres especiais: `\d` corresponde a qualquer dígito, `\w` corresponde a caracteres alfanuméricos, `+` corresponde a uma ou mais repetições e colchetes `[...]` definem conjuntos de caracteres. O agrupamento com parênteses `(...)` permite extrair partes específicas de um padrão. Além disso, `re.sub()` permite procurar um padrão e substituí-lo por uma nova string. Embora o regex tenha uma curva de aprendizado acentuada, dominá-lo fornece uma ferramenta incrivelmente rápida e versátil para processamento de texto.
Saída de código e execução
Usando o módulo re para validar e extrair componentes de um endereço de e-mail.
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.Implementação passo a passo
- Validando entradas de formato (e-mails, telefones, senhas)
- Analisando logs de acesso ao servidor para códigos de status
- Extração de informações de HTML bruto e relatórios de remarcação
Perguntas frequentes
Qual é o significado do prefixo 'r' nos padrões regex?
Denota uma 'string bruta'. Strings brutas tratam barras invertidas (\) como caracteres literais em vez de caracteres de escape, evitando conflitos de sintaxe com curingas regex.
Qual é a diferença entre re.match e re.search?
re.match verifica apenas uma correspondência começando no início da string, enquanto re.search verifica a string inteira em busca de uma correspondência.
Tópicos Relacionados
Manipulação de strings mestre em Python. Aprenda métodos de string, técnicas de fatiamento, concatenação e formatação com exemplos de códigos claros e executáveis.
E/S de arquivo PythonAprenda a ler e escrever arquivos em Python. Domine open(), read(), write() e gerenciadores de contexto para lidar com operações de arquivo com segurança sem vazamentos de recursos.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Como classificar uma lista em Python
Aprenda como classificar uma lista em Python usando o método sort() e a função sorted(). Descubra exemplos de classificação de chaves personalizadas e ordem reversa.
Folha de referências dos padrões Python Regex (remódulo)
Guia de referência para expressões regulares Python. Aprenda padrões de correspondência, pesquisa, findall, sub e regex essenciais.
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.