Python Regulyar Ifodalarida finditer Metodi
finditer metodi
satrdagi regulyar ifoda bilan mos
keladigan barcha mosliklarning iteratorini
olingan uchun mo'ljallangan. Metodning birinchi parametrida
biz qidiradigan regulyar ifodani
ko'rsatamiz, ikkinchi parametrida - qidirilayotgan
satrni. Metod barcha mosliklarni tekshiradi,
ularni chapdan o'ngga qarab izlab. Metod
moslik ob'ektlarining iteratorini qaytaradi.
finditer metodining sintaksisi
quyidagicha ko'rinadi:
re.finditer(nima qidirish, qayerda qidirish)
Keling, satrimizdagi raqamlar bilan bo'lgan barcha qism satrlarni topaylik:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Kodni bajarish natijasi:
<callable_iterator object at 0x000002AA891300A0>
Keling, res o'zgaruvchisini e'lon qilaylik,
uning qiymati oldingi misolda biz olgan
ob'ekt bo'ladi. Keyin uni
sikl bilan aylantiramiz:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Kod bajarilgandan keyin ikkita match-ob'ekti chiqadi:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ushbu ob'ektlar regulyar ifoda bilan barcha mosliklar haqida ma'lumotni kortej ko'rinishida o'z ichiga oladi. Ulardan mosliklarni indeks bo'yicha chiqarish mumkin:
for el in res:
print(el[0])
Kodni bajarish natijasi:
'123'
'456'
Satr berilgan:
txt = '12 aaa 34 bbb 56 ccc'
Undan barcha raqamlarni sikl yordamida chiqaring.