Modulio re metodas finditer
Modulio re metodas finditer
grąžina iteratorų visų atitikmenų su reguliariąja išraiška
eilutėje. Pirmame metodo parametre nurodome
reguliariąją išraišką. Antrame parametre nustatome
eilutę, kurioje ieškome reguliariosios išraiškos. Trečiame
nebūtinate parametre galima nustatyti vėliavas.
Metodas patikrina visus atitikmenis, ieškodamas jų
iš kairės į dešinę.
Sintaksė
import re
re.finditer(reguliarioji išraiška, eilutė, [vėliavos])
Pavyzdys
Suraskime visas poeilutes su skaitmenimis mūsų eilutėje:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Kodo vykdymo rezultatas:
<callable_iterator object at 0x000002AA891300A0>
Pavyzdys
Dabar deklaruokime kintamąjį res,
kurio reikšmė bus objektas, gautas
mums 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ą gausime du objektus Match object:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Šie objektai talpina informaciją apie visus atitikmenis su reguliariąja išraiška kortelės pavidalu. Galime iš jų išvesti atitikmenis pagal indeksą:
for el in res:
print(el[0])
Kodo vykdymo rezultatas:
'123'
'456'
Pavyzdys
Kad būtų aiškiau, ieškodami atitikmenų naudokime kišenes. O perrinkdami objektus cikle išveskime pirmąjį atitikmenį (jis bus laikomas nuline kišene), taip pat jo elementus, savo ruožtu taip pat padalintus pagal kišenes:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Vykdžius kodą gausime nulinę kišenę, t.y. visą poeilutę, taip pat pirmąjį ir antrąjį simbolius iš šios poeilutės:
'12' '1' '2'
'45' '4' '5'
Žiūrėkite taip pat
-
modulio
remetodasfindall,
kuris grąžina sąrašą iš visų atitikmenų eilutėje -
modulio
remetodassearch,
kuris ieško pirmojo atitikmens su reguliariąja išraiška eilutėje -
modulio
remetodasmatch,
kuris ieško atitikmens su reguliariąja išraiška eilutės pradžioje -
modulio
remetodasfullmatch,
kuris ieško visų atitikmenų su reguliariąja išraiška eilutėje -
modulio
reobjektasMatch object,
kuris talpina informaciją apie atitikmenis su reguliariąja išraiška -
modulio
remetodassplit,
kuris skaido eilutę į sąrašą pagal nurodytą skirstytuvą