0Pricing
Learn AI with Python · Aula

Módulo re: pesquisa, correspondência, localização e substituição

re.search(), re.match(), re.findall(), re.sub() e re.compile() para obter desempenho.

Módulo re: pesquisa, correspondência, localização e substituição é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

O módulo re

O Python disponibiliza expressões regulares por meio do módulo integrado re. As funções principais são search, match, findall e sub.

Saber qual escolher é metade do caminho.

import re   # always import it first

re.search — encontrar em qualquer posição

re.search(pattern, text) examina a cadeia de caracteres inteira em busca da primeira correspondência e retorna um objeto de correspondência ou None se nada corresponder.

import re

m = re.search("\d+", "order 42 shipped")
if m:
    print(m.group())   # "42"
    print(m.start())   # 6

re.match — ancorado no início

re.match só procura uma correspondência no início da cadeia de caracteres. Se o padrão não estiver na posição 0, retorna None, mesmo que apareça mais adiante.

import re

print(re.match("\d+", "42 items"))    # matches "42"
print(re.match("\d+", "items 42"))    # None

search vs match

A diferença principal:

  • match — o padrão deve começar no índice 0
  • search — o padrão pode aparecer em qualquer posição

Na maioria das vezes, você vai querer search. Use match apenas quando precisar especificamente verificar um prefixo.

re.findall — obter todas as correspondências

re.findall retorna uma lista de todas as correspondências não sobrepostas como cadeias de caracteres, e não como objetos de correspondência. É ideal para tarefas de extração.

import re

emails = re.findall("\w+@\w+\.\w+", "a@x.com and b@y.org")
print(emails)   # ["a@x.com", "b@y.org"]

findall com grupos

Se o padrão tiver grupos de captura, findall retornará as partes capturadas em vez da correspondência inteira — uma surpresa comum.

Aqui, cada tupla contém o código de área e o restante.

import re

print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]

re.finditer — objetos de correspondência

Quando você precisa das posições ou dos grupos de cada correspondência, use re.finditer. Ele fornece objetos de correspondência que podem ser percorridos sob demanda.

import re

for m in re.finditer("\d+", "a1 b22 c333"):
    print(m.group(), "at", m.start())

re.sub — pesquisar e substituir

re.sub(pattern, replacement, text) substitui todas as correspondências pela cadeia de substituição e retorna uma nova cadeia de caracteres.

É fundamental para a limpeza de texto — mascaramento, normalização e remoção.

import re

clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean)   # "Room # and #"

sub com referências retroativas e funções

A substituição pode referenciar grupos capturados com \1 ou ser uma função para implementar uma lógica dinâmica.

import re

# Swap "first last" -> "last, first"
print(re.sub("(\w+) (\w+)", "\\2, \\1", "Ada Lovelace"))

# Function replacement: double each number
print(re.sub("\d+", lambda m: str(int(m.group()) * 2), "a1 b2"))

re.compile — reutilizar padrões

Quando você usa um padrão muitas vezes, por exemplo, em um laço, re.compile o cria uma vez em um objeto de padrão reutilizável. Isso é mais rápido e deixa o código mais claro.

import re

num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
    print(num.findall(line))

Sinalizadores úteis

Os sinalizadores alteram o comportamento da correspondência:

  • re.IGNORECASE — ignora maiúsculas e minúsculas
  • re.MULTILINE — ^/$ correspondem a cada linha
  • re.DOTALL — . também corresponde a quebras de linha
import re

print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]

Verificação rápida: search vs findall

Você precisa de uma lista de todos os números de telefone que aparecem em qualquer posição de um documento.

Recapitulação: o módulo re

Agora você conhece as principais funções de regex:

  • re.search — primeira correspondência em qualquer posição (objeto de correspondência)
  • re.match — correspondência apenas no início
  • re.findall — lista de todas as correspondências (os grupos alteram a saída)
  • re.finditer — objetos de correspondência com posições
  • re.sub — substitui correspondências, com referências retroativas ou uma função
  • re.compile e sinalizadores para reutilização e controle

Próximo: grupos de captura e grupos nomeados.

Perguntas Frequentes

A aula “Módulo re: pesquisa, correspondência, localização e substituição” é grátis?

Sim — o texto completo de “Módulo re: pesquisa, correspondência, localização e substituição” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Módulo re: pesquisa, correspondência, localização e substituição”?

re.search(), re.match(), re.findall(), re.sub() e re.compile() para obter desempenho. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Módulo re: pesquisa, correspondência, localização e substituição”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Padrões de expressões regulares e classes de caracteres
  2. Módulo re: pesquisa, correspondência, localização e substituição
  3. Grupos de captura e grupos nomeados
  4. Limpeza de texto para IA com expressões regulares
← Voltar para Learn AI with Python