Методът finditer в регулярните изрази на Python
Методът 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'
Изведете от него всички числа с помощта на цикъл.