Метод finditer на модула re
Методът finditer на модула re
връща итератор на всички съвпадения с регулярен израз
в низ. В първия параметър на метода посочваме
регулярния израз. Във втория параметър задаваме
низа, в който търсим. В третия
незадължителен параметър може да се зададат флагове.
Методът проверява всички съвпадения, като ги търси
отляво надясно.
Синтаксис
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,
който разделя низа на списък по указан разделител