Методът finditer в регулярните изрази на Python

Методът 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'

Изведете от него всички числа с помощта на цикъл.