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 inteiram.group(n)— a enésima capturam.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 pxRetrovisã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 99Verificaçã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 comm.group(n)em.groups()(?P<name>...)grupos nomeados comm.groupdict()(?:...)grupos sem captura para agrupar de forma organizada- Retorreferências
\1para 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
- Padrões de expressões regulares e classes de caracteres
- Módulo re: pesquisa, correspondência, localização e substituição
- Grupos de captura e grupos nomeados
- Limpeza de texto para IA com expressões regulares