Усули 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'
Ҳамаи рақамҳоро аз он бо сикл чоп кунед.