Python-ի ռեգուլյար արտահայտությունների finditer մեթոդը

finditer մեթոդը նախատեսված է տողում ռեգուլյար արտահայտության բոլոր համընկնումների իտերատոր ստանալու համար: Մեթոդի առաջին պարամետրում նշում ենք այն ռեգուլյար արտահայտությունը, որը կփնտրենք, երկրորդ պարամետրում՝ այն տողը, որում փնտրում ենք: Մեթոդը ստուգում է բոլոր համընկնումները՝ փնտրելով դրանք ձախից աջ: Մեթոդը վերադարձնում է համընկնման օբյեկտների իտերատոր: finditer մեթոդի սինտաքսը այսպիսի տեսք ունի.

pythonre.finditer(ինչ փնտրել, որտեղ փնտրել)

Եկեք գտնենք մեր տողում թվեր պարունակող բոլոր ենթատողերը.

pythontxt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))

Կոդի կատարման արդյունքը.

python<callable_iterator object at 0x000002AA891300A0>

Իսկ հիմա եկեք հայտարարենք res փոփոխականը, որի արժեքը կլինի նախորդ օրինակում ստացված օբյեկտը: Ապա այն ցիկլով դուրս բերենք.

pythontxt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)

for el in res:
  print(el)

Կոդի կատարումից հետո կարտածվեն երկու match-օբյեկտ.

python<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>

Այս օբյեկտները պարունակում են տեղեկություն բոլոր ռեգուլյար արտահայտության հետ համընկնումների մասին՝ տուփի տեսքով: Դրանցից կարելի է դուրս բերել համընկնումներն ըստ ինդեքսի.

pythonfor el in res:
  print(el[0])

Կոդի կատարման արդյունքը.

python'123'
'456'
Задание 1

Տրված է տող.

pythontxt = '12 aaa 34 bbb 56 ccc'

Դուրս բերեք դրանից բոլոր թվերը՝ օգտագործելով ցիկլ: