De finditer-methode in reguliere expressies van Python
De methode finditer is bedoeld voor
het verkrijgen van een iterator van alle overeenkomsten met
de reguliere expressie in een string. In de eerste parameter
van de methode geven we de reguliere expressie op die we
willen zoeken, in de tweede parameter - de string
waarin we zoeken. De methode controleert alle overeenkomsten,
en zoekt ze van links naar rechts. De methode retourneert
een iterator van match-objecten. De syntaxis van
de methode finditer ziet er als volgt uit:
re.finditer(wat te zoeken, waar te zoeken)
Laten we alle substrings met cijfers in onze string vinden:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Het resultaat van de code-uitvoering:
<callable_iterator object at 0x000002AA891300A0>
Laten we nu een variabele res declareren,
waarvan de waarde het object is dat we
in het vorige voorbeeld hebben verkregen. Laten we het
vervolgens doorlopen met een lus:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Na uitvoering van de code worden twee match-objecten weergegeven:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Deze objecten bevatten informatie over alle overeenkomsten met de reguliere expressie in de vorm van een tuple. Je kunt de overeenkomsten per index ervan weergeven:
for el in res:
print(el[0])
Resultaat van de code-uitvoering:
'123'
'456'
Gegeven een string:
txt = '12 aaa 34 bbb 56 ccc'
Geef alle getallen eruit weer met behulp van een lus.