Python жүгүртүмдөрүндөгү finditer методу

finditer методу саптан регулярдык өрнек менен дал келген бардык учурлардын итераторун алууга арналган. Методдун биринчи параметринде издегидени регулярдык өрнек, экинчи параметринде - издеген сабыбызды көрсөтөбүз. Метод бардык дал келуүлөрдү солдон оңго карай текшерет. Метод дал келүү объектилеринин итераторун кайтарат. finditer методунун синтаксиси төмөнкүдөй көрүнөт:

pythonre.finditer(эмнени издеш керек, кайда издеш керек)

Келгиле, сабыбыздагы сандар бар бардык субсаптарды табалы:

pythontxt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))

Кодду иштетүүнүн натыйжасы:

python<callable_iterator object at 0x000002AA891300A0>

Эми келгиле, res өзгөрмөсүн жарыялап, анын мааниси катары мурунку мисалдан алган объектибизди коёлу. Андан кийин аны цикл менен айланып өтөлү:

pythontxt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)

for el in res:
  print(el)

Кодду иштеткенден кийин эки match-объект чыгарылат:

python<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>

Бул объекттер кортеж түрүндө регулярдык өрнек менен бардык дал келуүлөр жөнүндө маалыматты камтыйт. Алардан индекс боюнча дал келгендерди чыгарууга болот:

pythonfor el in res:
  print(el[0])

Кодду иштетүүнүн натыйжасы:

python'123'
'456'
Задание 1

Төмөнкү сап берилген:

pythontxt = '12 aaa 34 bbb 56 ccc'

Цикл жардамы менен андан бардык сандарды чыгарыңыз.