Método finditer em expressões regulares do Python
O método finditer é usado para
obter um iterador de todas as correspondências
do padrão regex em uma string. No primeiro parâmetro
do método, especificamos a expressão regular
a ser procurada, no segundo parâmetro - a string
onde procuramos. O método verifica todas as correspondências,
procurando da esquerda para a direita. O método retorna
um iterador de objetos de correspondência. A sintaxe
do método finditer é a seguinte:
re.finditer(what to search for, where to search)
Vamos encontrar todas as substrings com dígitos na nossa string:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Resultado da execução do código:
<callable_iterator object at 0x000002AA891300A0>
Agora vamos declarar uma variável res,
cujo valor será o objeto que obtivemos
no exemplo anterior. Em seguida, vamos iterar sobre
ele com um loop:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Após a execução do código, dois objetos de correspondência (match) serão exibidos:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Esses objetos contêm informações sobre todas as correspondências com a regex na forma de uma tupla. Podemos exibir as correspondências deles por índice:
for el in res:
print(el[0])
Resultado da execução do código:
'123'
'456'
Dada a string:
txt = '12 aaa 34 bbb 56 ccc'
Exiba todos os números dela usando um loop.