re модулининг finditer методи
re модулининг finditer методи
сатрдаги регулярный ифодага
мос келувчи барча топилмаларнинг итераторини кайтаради. Методнинг биринчи параметрида
регулярный ифодани кўрсатамиз. Иккинчи параметрда излайдиган
сатрни берамиз. Учинчи
ихтиёрий параметрда флагларни бериш мумкин.
Метод чапдан ўнга караб излаб,
барча мос келишларни текширади.
Синтаксис
import re
re.finditer(регулярный ифода, сатр, [флаглар])
Мисол
Келгина, сатримиздаги рақамли барча қисм сатрларни топамиз:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Кодни ишга тушириш натижаси:
<callable_iterator object at 0x000002AA891300A0>
Мисол
Энди res ўзгарувчисини эълон килайлик, унинг
қиймати олдинги мисолда олинган объект бўлади. Сўнгра уни
сикл билан айлантирамиз:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Кодни ишга туширганимиздан сўнг биз иккита Match object объектини оламиз:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Бу объектлар кортеж шаклидаги регулярный ифодага мос келишлар ҳақидаги барча маълумотларни ўз ичига олади. Биз улардан мос келишларни индекс бўйича чиқаришимиз мумкин:
for el in res:
print(el[0])
Кодни ишга тушириш натижаси:
'123'
'456'
Мисол
Янада аникрок булиши учун мос келишларни излаганда карманалардан фойдаланамиз. Ва объектларни сикл билан айлантирганда биринчи мос келишни (у ноль карман ҳисобланади), шунингдек унинг элементларини, ўз навбатида карманларга бўлиб чиқарамиз:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Кодни ишга туширганимиздан сўнг биз ноль кармании, яъни бутун қисм сатрни, ва шунингдек биринчи ва иккинчи белгини шу қисм сатрдан оламиз:
'12' '1' '2'
'45' '4' '5'
Шунингдек қаранг
-
findallметодиreмодулининг,
у сатрдаги барча мос келишлардан иборат рўйхатни кайтаради -
searchметодиreмодулининг,
у сатрдаги регулярный ифодага биринчи мос келишни излайди -
matchметодиreмодулининг,
у сатр бошидаги регулярный ифодага мос келишни излайди -
fullmatchметодиreмодулининг,
у сатрдаги регулярный ифодага барча мос келишларни излайди -
Match objectобъектиreмодулининг,
у регулярный ифодага мос келишлар ҳақидаги маълумотларни ўз ичига олади -
splitметодиreмодулининг,
у сатрни кўрсатилган ажраткич бўйича рўйхатга ажратади