Grupos de captura no método search do Python
Frequentemente, ao buscar uma correspondência, é conveniente decompor a substring nos chamados grupos de captura. Eles representam uma maneira de dividir o que foi encontrado em partes separadas. Para usá-los, é necessário colocar parte da expressão regular entre parênteses.
Vamos tentar na prática. Suponha que temos a seguinte string:
txt = '123 456'
Vamos decompor as substrings com números em grupos de captura. Para isso, escreveremos a seguinte expressão regular:
res = re.search('(\d+) (\d+)', txt)
Como resultado, obteremos um objeto de correspondência (match object).
Em seu elemento com índice 1 estará
o primeiro grupo de captura, no elemento com índice
2 - o segundo grupo de captura, e no elemento com
índice 0 - todo o texto encontrado (o chamado
grupo zero):
print(res[0]) # '123 456' - texto encontrado
print(res[1]) # '123' - 1º grupo
print(res[2]) # '456' - 2º grupo
Dada uma string contendo um domínio:
txt = 'sss domain.ru zzz'
Encontre este domínio e coloque seu nome no primeiro grupo de captura, e o TLD (domínio de topo) - no segundo.
Dada uma string contendo uma data:
txt = '31.12.2025'
Coloque o dia no primeiro grupo de captura, o mês - no segundo, e o ano - no terceiro.