Метод 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,
који дели стринг на листу по назначеном сепаратору