Метад 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'
Вывядзіце з яго ўсе лікі з дапамогай цыкла.