Re modulining finditer metodi
re modulining finditer metodi
satrda regular ifoda bilan
mos keluvchi barcha moslamalarning iteratorini qaytaradi. Metodning birinchi parametrida
regular ifodani ko'rsatamiz. Ikkinchi parametrda qidiruv amalga oshiriladigan
satrni belgilaymiz. Uchinchi
ixtiyoriy parametrda flaglar ni o'rnatish mumkin.
Metod chapdan o'nga qarab barcha moslamalarni tekshiradi.
Sintaksis
import re
re.finditer(regular_ifoda, satr, [flaglar])
Misol
Keling, satrimizdagi raqamli qismlarni topamiz:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Kodni bajarish natijasi:
<callable_iterator object at 0x000002AA891300A0>
Misol
Endi esa res o'zgaruvchisini e'lon qilaylik,
uning qiymati oldingi misolda olingan obyekt bo'lsin.
Keyin uni sikl orqali aylantiramiz:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Kod bajarilgandan so'ng biz ikkita Match obyektini olamiz:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ushbu obyektlar regular ifoda bilan barcha moslamalar haqidagi ma'lumotlarni kortej shaklida o'z ichiga oladi. Biz ulardan moslamalarni indeks bo'yicha chiqarishimiz mumkin:
for el in res:
print(el[0])
Kodni bajarish natijasi:
'123'
'456'
Misol
Yanada aniqroq ko'rinish uchun keling, moslamalarni qidirishda "karmalardan" foydalanaylik. Siklda obyektlarni aylantirish jarayonida birinchi moslamani (u nolinchi karta hisoblanadi), shuningdek uning elementlarini, o'z navbatida karmalarga ajratilgan holda chiqaramiz:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Kod bajarilgandan so'ng biz nolinchi karmani, ya'ni butun qismni, shuningdek ushbu qismdagi birinchi va ikkinchi belgilarni olamiz:
'12' '1' '2'
'45' '4' '5'
Shuningdek qarang
-
findallmetodiremoduli,
satrdagi barcha moslamalarning ro'yxatini qaytaradi -
searchmetodiremoduli,
satrda regular ifoda bilan birinchi moslamani qidiradi -
matchmetodiremoduli,
satr boshida regular ifoda bilan moslamani qidiradi -
fullmatchmetodiremoduli,
satrda regular ifoda bilan barcha moslamalarni qidiradi -
Match objectobyektiremoduli,
regular ifoda bilan moslamalar haqida ma'lumotni o'z ichiga oladi -
splitmetodiremoduli,
satrni ko'rsatilgan ajratuvchi bo'yicha ro'yxatga ajratadi