Meetod finditer Pythoni regulaaravaldistes
Meetod finditer on mõeldud
kõigi regulaaravaldisega kattuvuste
iteraatori saamiseks stringis. Meetodi esimeses
parameetris määrame regulaaravaldise, mida otsime,
teises parameetris - stringi,
millest otsime. Meetod kontrollib kõiki kattuvusi,
otsides neid vasakult paremale. Meetod tagastab
sobitamisobjektide iteraatori. Meetodi finditer
süntaks on järgmine:
re.finditer(mida otsida, kust otsida)
Leiame kõik numbritega alamsõned meie stringis:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Koodi täitmise tulemus:
<callable_iterator object at 0x000002AA891300A0>
Nüüd deklareerime muutuja res,
mille väärtuseks on eelmises näites saadud
objekt. Seejärel itereerime selle
tsükliga läbi:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Pärast koodi täitmist kuvatakse kaks match-objekti:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Need objektid sisaldavad teavet kõigi regulaaravaldisega kattumiste kohta tuple kujul. Neist saab indeksi järgi kuvada kattuvused:
for el in res:
print(el[0])
Koodi täitmise tulemus:
'123'
'456'
Antud string:
txt = '12 aaa 34 bbb 56 ccc'
Kuva sealt kõik numbrid tsükli abil.