0Pricing
Learn AI with Python · Aula

Grupos de captura e grupos nomeados

Parênteses para captura, grupos nomeados (?P ...), re.fullmatch(), antecipação e retrovisão.

Grupos de captura e grupos nomeados é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 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.

Por que usar grupos?

Os grupos permitem isolar partes de uma correspondência para que você possa extrair exatamente o trecho desejado — o código de área de um número de telefone, o ano de uma data ou o nome de usuário de um e-mail.

Esta lição aborda grupos de captura, nomeados e sem captura, além de asserções de contexto.

Grupos de captura com ( )

Coloque parte de um padrão entre parênteses para capturá-la. A correspondência inteira e cada grupo ficam acessíveis no objeto de correspondência.

import re

m = re.search("(\d{4})-(\d{2})-(\d{2})", "Date: 2026-05-29")
print(m.group())    # "2026-05-29" (whole match)
print(m.group(1))   # "2026"
print(m.group(2))   # "05"

match.group, groups, groupdict

Formas úteis de acessar os dados:

  • m.group(0) — correspondência inteira
  • m.group(n) — a enésima captura
  • m.groups() — uma tupla com todas as capturas
import re

m = re.search("(\d{4})-(\d{2})-(\d{2})", "2026-05-29")
print(m.groups())   # ("2026", "05", "29")
year, month, day = m.groups()

Grupos nomeados com (?P<name>...)

Numerar os grupos pode causar problemas. Os grupos nomeados usam (?P<name>...) para que você faça referência às capturas por um nome significativo.

import re

m = re.search("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", "2026-05-29")
print(m.group("year"))   # "2026"
print(m.group("month"))  # "05"

groupdict para saída estruturada

m.groupdict() retorna todos os grupos nomeados como um dicionário — perfeito para transformar texto correspondente em registros estruturados.

import re

m = re.search("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", "2026-05-29")
print(m.groupdict())
# {"year": "2026", "month": "05", "day": "29"}

Grupos sem captura (?:...)

Às vezes, você precisa de parênteses apenas para agrupar, por exemplo, para aplicar um quantificador, mas não quer fazer uma captura. Use (?:...).

Isso mantém a numeração dos grupos organizada.

import re

# Group "ab" so + applies, but do not capture it
m = re.search("(?:ab)+(\d+)", "ababab42")
print(m.group(1))   # "42" -> group 1 is the digits, not "ab"

Referências retroativas

Uma referência retroativa \1 corresponde ao mesmo texto que um grupo capturou anteriormente. Isso é útil para encontrar palavras repetidas.

import re

# Find a word repeated twice in a row
print(re.findall("(\w+) \1", "the the cat cat sat"))
# ["the", "cat"]

Antevisão (?=...)

Uma antevisão positiva (?=...) afirma o que deve vir a seguir, sem consumir esse conteúdo. O texto afirmado não faz parte da correspondência.

Aqui, fazemos corresponder um número somente se ele for seguido por "px".

import re

print(re.findall("\d+(?=px)", "10px 20em 30px"))
# ["10", "30"]  -> "20" skipped (not followed by px)

Antevisão negativa (?!...)

Uma antevisão negativa (?!...) afirma o que NÃO deve vir a seguir. Faça corresponder o número somente se ele NÃO for seguido por "px".

import re

print(re.findall("\d+(?!px)", "10px 20em 30px"))
# matches numbers not followed directly by px

Retrovisão (?<=...) e (?<!...)

A retrovisão afirma o que vem antes da correspondência sem consumir esse conteúdo:

  • (?<=...) positiva — deve ser precedida por
  • (?<!...) negativa — NÃO deve ser precedida por

Aqui, extraímos valores precedidos por um cifrão, sem capturar o símbolo.

import re

print(re.findall("(?<=\$)\d+", "price $50 and 60 units"))
# ["50"]  -> only the amount after $

Combinando grupos e verificações de contexto

Os extratores reais combinam essas ferramentas. Este padrão extrai um preço nomeado que deve ser precedido por um símbolo de moeda e seguido por uma parte decimal:

import re

text = "Total: $1299.99 paid"
m = re.search("(?<=\$)(?P<amount>\d+)\.(?P<cents>\d{2})", text)
print(m.group("amount"), m.group("cents"))   # 1299 99

Verificação rápida: grupos nomeados

Você quer extrair correspondências usando um nome legível, como "year", em vez de um número.

Recapitulação: grupos e verificações de contexto

Agora, você consegue extrair uma estrutura precisa do texto:

  • ( ) grupos de captura com m.group(n) e m.groups()
  • (?P<name>...) grupos nomeados com m.groupdict()
  • (?:...) grupos sem captura para agrupar de forma organizada
  • Retorreferências \1 para repetições
  • Antevisão (?=)/(?!) e retrovisão (?<=)/(?<!)

A seguir: juntar tudo para limpar texto para a IA.

Perguntas Frequentes

A aula “Grupos de captura e grupos nomeados” é grátis?

Sim — o texto completo de “Grupos de captura e grupos nomeados” é 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 “Grupos de captura e grupos nomeados”?

Parênteses para captura, grupos nomeados (?P ...), re.fullmatch(), antecipação e retrovisão. 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 3 de 4.

Quanto tempo leva a aula “Grupos de captura e grupos nomeados”?

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