Python ရှိ ရက်ဂျူလာ အက်စ်ပရက်ရှင်းများတွင် finditer နည်းလမ်း
finditer နည်းလမ်းသည်
စာကြောင်းအတွင်းရှိ ရက်ဂျူလာအားလုံးနှင့် ကိုက်ညီမှုများကို
ပြန်လည်ရယူသည့် ကိရိယာအဖြစ် အသုံးပြုပါသည်။ ပထမပါရာမီတာတွင်
ရှာမည့် ရက်ဂျူလာကို ထည့်သွင်းပြီး၊ ဒုတိယပါရာမီတာတွင် -
ရှာမည့် စာကြောင်းကို ထည့်သွင်းပါ။ ဤနည်းလမ်းသည် ဘယ်မှညာသို့
ရှာဖွေကာ ကိုက်ညီမှုအားလုံးကို စစ်ဆေးပါသည်။ ဤနည်းလမ်းသည်
တွဲဖက်အရာဝတ္ထုများ၏ ပြန်လည်ရယူသည့် ကိရိယာကို ပြန်ပေးပါသည်။
finditer နည်းလမ်း၏ syntax ပုံစံမှာ
အောက်ပါအတိုင်းဖြစ်သည်:
re.finditer(ဘာကိုရှာမလဲ၊ ဘယ်မှာရှာမလဲ)
ကျွန်ုပ်တို့၏ စာကြောင်းထဲရှိ ဂဏန်းများပါသော စာကြောင်းခွဲအားလုံးကို ရှာကြည့်ပါစို့:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
ကုဒ်အလုပ်လုပ်ပြီးနောက် ရလဒ်:
<callable_iterator object at 0x000002AA891300A0>
ယခု res အမည်ရှိ ကိန်းရှင်တစ်ခု ကြေညာပါ။
၎င်း၏တန်ဖိုးမှာ ယခင်ဥပမာမှ ကျွန်ုပ်တို့ရရှိခဲ့သော အရာဝတ္ထုဖြစ်ပါစေ။
ထို့နောက် ၎င်းကို loop ဖြင့် ဖြတ်သန်းပါ:
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'>
ဤအရာဝတ္ထုများတွင် tuple ပုံစံဖြင့် ရက်ဂျူလာနှင့် ကိုက်ညီမှုအားလုံး၏ အချက်အလက်များ ပါဝင်ပါသည်။ ၎င်းတို့ထဲမှ ကိုက်ညီမှုများကို index အလိုက် ထုတ်ပြနိုင်ပါသည်:
for el in res:
print(el[0])
ကုဒ်အလုပ်လုပ်ပြီးနောက် ရလဒ်:
'123'
'456'
စာကြောင်းတစ်ခု ပေးထားပါသည်:
txt = '12 aaa 34 bbb 56 ccc'
Loop ကိုသုံး၍ ၎င်းမှ ဂဏန်းအားလုံးကို ထုတ်ပြပါ။