Metoda finditer në shprehjet e rregullta të Python
Metoda finditer është menduar për
marrjen e një përsëritësi të të gjitha përputhjeve me
shprehjen e rregullt në varg. Në parametrin e parë
të metodës specifikojmë shprehjen e rregullt,
që do të kërkojmë, në parametrin e dytë - vargun,
ku do të kërkojmë. Metoda kontrollon të gjitha përputhjet,
duke i kërkuar nga e majta në të djathtë. Metoda kthen
një përsëritës të objekteve të përputhjes. Sintaksa
e metodës finditer duket kështu:
re.finditer(çfarë të kërkohet, ku të kërkohet)
Le të gjejmë të gjitha nënvargjet me shifra në vargun tonë:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Rezultati i ekzekutimit të kodit:
<callable_iterator object at 0x000002AA891300A0>
Tani le të deklarojmë një ndryshore res,
vlere e së cilës do të jetë objekti, i marrë
nga ne në shembullin e mëparshëm. Pastaj le ta përsërisim
atë me një cikël:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Pas ekzekutimit të kodit do të printohen dy objekte match:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Këto objekte përmbajnë informacion për të gjitha përputhjet me shprehjen e rregullt në formë të tuple. Mund të nxirren prej tyre përputhjet sipas indeksit:
for el in res:
print(el[0])
Rezultati i ekzekutimit të kodit:
'123'
'456'
Është dhënë një varg:
txt = '12 aaa 34 bbb 56 ccc'
Nxirri prej tij të gjithë numrat duke përdorur ciklin.