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модулунун,
ал сапты көрсөтүлгөн бөлгүчкө ылайык тизмеге бөлөт