Python жүгүртүмдөрүндөгү finditer методу
finditer методу саптан регулярдык өрнек менен дал
келген бардык учурлардын итераторун алууга арналган. Методдун
биринчи параметринде издегидени регулярдык өрнек, экинчи
параметринде - издеген сабыбызды көрсөтөбүз. Метод бардык
дал келуүлөрдү солдон оңго карай текшерет. Метод дал
келүү объектилеринин итераторун кайтарат. finditer
методунун синтаксиси төмөнкүдөй көрүнөт:
re.finditer(эмнени издеш керек, кайда издеш керек)
Келгиле, сабыбыздагы сандар бар бардык субсаптарды табалы:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Кодду иштетүүнүн натыйжасы:
<callable_iterator object at 0x000002AA891300A0>
Эми келгиле, res өзгөрмөсүн жарыялап, анын мааниси
катары мурунку мисалдан алган объектибизди коёлу. Андан
кийин аны цикл менен айланып өтөлү:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Кодду иштеткенден кийин эки match-объект чыгарылат:
<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 = '12 aaa 34 bbb 56 ccc'
Цикл жардамы менен андан бардык сандарды чыгарыңыз.