re մոդուլի finditer մեթոդը
re մոդուլի finditer մեթոդը
վերադարձնում է իտերատոր տողի մեջ կանոնավոր արտահայտության
բոլոր համընկնումների համար: Մեթոդի առաջին պարամետրում նշում ենք
կանոնավոր արտահայտությունը: Երկրորդ պարամետրում նշում ենք
այն տողը, որի մեջ փնտրում ենք կանոնավոր արտահայտությունը: Երրորդ
ոչ պարտադիր պարամետրում կարելի է նշել ֆլագները:
Մեթոդը ստուգում է բոլոր համընկնումները՝ փնտրելով դրանք
ձախից աջ:
Շարահյուսություն
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 օբյեկտ:
<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մոդուլի,
որը բաժանում է տողը ցուցակի ըստ նշված բաժանարարի