Metods finditer Python regulārajās izteiksmēs
Metods finditer ir paredzēts
visu atbilstību ar regulāro izteiksmi virknē iteratora iegūšanai. Pirmajā parametrā
metoda norādām regulāro izteiksmi, ko meklēsim, otrajā parametrā - virkni,
kurā meklējam. Metods pārbauda visas atbilstības,
meklējot tās no kreisās puses uz labo. Metods atgriež
atbilstību objektu iteratoru. Metoda finditer sintakse
izskatās šādi:
re.finditer(ko meklēt, kur meklēt)
Meklēsim visas apakšvirknes ar cipariem mūsu virknē:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Koda izpildes rezultāts:
<callable_iterator object at 0x000002AA891300A0>
Un tagad deklarēsim mainīgo res,
kura vērtība būs objekts, ko ieguvām
iepriekšējā piemērā. Pēc tam iziesim to cauri
ciklā:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Pēc koda izpildes tiks izvadīti divi match-objekti:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Šie objekti satur informāciju par visām atbilstībām ar regulāro izteiksmi korteža veidā. No tiem var izvadīt atbilstības pēc indeksa:
for el in res:
print(el[0])
Koda izpildes rezultāts:
'123'
'456'
Dota virkne:
txt = '12 aaa 34 bbb 56 ccc'
Izvadiet no tās visus skaitļus, izmantojot ciklu.