Die finditer-metode in Python se gereelde uitdrukkings
Die metode finditer is bedoel vir
die verkryging van 'n iterator van alle ooreenstemmings met
die gereelde uitdrukking in die string. In die eerste parameter
van die metode spesifiseer ons die gereelde uitdrukking wat ons
soek, in die tweede parameter - die string
waarin ons soek. Die metode toets alle ooreenstemmings,
soek hulle van links na regs. Die metode gee terug
'n iterator van match-objekte. Die sintaksis
van die metode finditer lyk so:
re.finditer(wat om te soek, waar om te soek)
Kom ons vind alle substringe met syfers in ons string:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Die resultaat van die kode-uitvoering:
<callable_iterator object at 0x000002AA891300A0>
Kom ons verklaar nou 'n veranderlike res,
waarvan die waarde die voorwerp is wat ons
in die vorige voorbeeld gekry het. Laat ons dit dan
deur 'n lus itereer:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Na die uitvoering van die kode sal twee match-objekte uitgedruk word:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Hierdie voorwerpe bevat inligting oor al die ooreenstemmings met die gereelde uitdrukking in die vorm van 'n tupel. Daaruit kan ooreenstemmings volgens indeks uitgedruk word:
for el in res:
print(el[0])
Die resultaat van die kode-uitvoering:
'123'
'456'
Gegee 'n string:
txt = '12 aaa 34 bbb 56 ccc'
Druk al die getalle daaruit uit met behulp van 'n lus.