Objeto Match

O objeto Match representa um objeto com informações sobre correspondências com expressão regular em uma string. O objeto Match pode ser obtido aplicando os seguintes métodos: fullmatch, match, search.

É possível extrair informações do objeto Match usando os métodos principais.

Métodos principais aplicados ao objeto Match

Método Finalidade
group Retorna o grupo zero.
groups Retorna uma tupla de grupos.
groupdict Retorna um dicionário de grupos nomeados.
span Retorna os índices inicial e final da tupla de um grupo.
start Retorna o índice inicial da tupla de um grupo.
end Retorna o índice final da tupla de um grupo.

Exemplo . Objeto Match sem método

Vamos aplicar o método match à nossa string:

pythontxt = '123 456 789'
res = re.match('\d+', txt)

print(res)

Resultado da execução do código:

python<re.Match object; span=(0, 3), match='123'>

Exemplo . Método group

Agora vamos exibir o grupo zero do objeto Match usando o método group:

pythontxt = '123 456 789'
res = re.match('\d+', txt)

print(res.group())

Resultado da execução do código:

python'123'

Exemplo . Método groups

Vamos aplicar o método groups ao objeto obtido para exibir as tuplas de grupos:

pythontxt = '123 456 789'
res = re.match('(\d)(\d)', txt)

print(res.groups())

Resultado da execução do código:

python('1', '2')

Exemplo . Método groupdict

Para exibir o dicionário de grupos nomeados, pode-se aplicar o método groupdict:

pythonres = re.match('(?P<test1>\d)(?P<test2>\d)', txt)
print(res.groupdict())

Resultado da execução do código:

python{'test1': '1', 'test2': '2'}

Exemplo . Método span

Vamos exibir a tupla com os índices inicial e final de um grupo. Para isso, usamos o método span:

pythonres = re.match('\d+', txt)
print(res.span())

Após a execução do código, você verá uma tupla composta por dois índices. Mas observe que o último valor é uma unidade maior que o índice final:

python(0, 3)

Exemplo . Métodos start e end

Para retornar cada um dos índices separadamente, pode-se aplicar os métodos start e end:

pythonres = re.match('\d+', txt)
print(res.start())
print(res.end())

Resultado da execução do código:

python0
3

Veja também

  • método match do módulo re,
    que busca correspondência com regex no início da string
  • método fullmatch do módulo re,
    que busca todas as correspondências com regex na string
  • método search do módulo re,
    que busca a primeira correspondência com regex na string