Python-ի ռեգուլյար արտահայտությունների finditer մեթոդը
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'
Դուրս բերեք դրանից բոլոր թվերը՝ օգտագործելով ցիկլ: