Metodo finditer naudojimas Python reguliariosiose išraiškose
Metodas finditer skirtas
gauti iteratoriu visų atitikmenų su
reguliariąja išraiška eilutėje. Pirmame parametre
metodo nurodome reguliariąją išraišką, kurią bus
ieškoma, antrame parametre - eilutę,
kurioje ieškoma. Metodas patikrina visus atitikmenis,
ieškodamas juos iš kairės į dešinę. Metodas grąžina
atitikimo objektų iteratoriu. Metodo finditer sintaksė
atrodo taip:
re.finditer(ką ieškoti, kur ieškoti)
Suraskime visas skaitmenis turinčias pašeutės mūsų eilutėje:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Kodo vykdymo rezultatas:
<callable_iterator object at 0x000002AA891300A0>
Dabar deklaruokime kintamąjį res,
kurio reikšmė bus objektas, gautas
mūsų ankstesniame pavyzdyje. Tada perrinkime
jį ciklu:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Vykdžius kodą, bus išvesti du match-objektai:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Šiuose objektuose yra informacija apie visus atitikmenis su reguliariąja išraiška kortežo pavidalu. Iš jų galima išvesti atitikmenis pagal indeksą:
for el in res:
print(el[0])
Kodo vykdymo rezultatas:
'123'
'456'
Duota eilutė:
txt = '12 aaa 34 bbb 56 ccc'
Išveskite iš jos visus skaičius naudodami ciklą.