re မော်ဂျူး၏ finditer နည်းလမ်း
re မော်ဂျူး၏ finditer နည်းလမ်းသည်
စာသားတစ်ခုအတွင်း ရီဂျက်စ်ဖတ်
တစ်ခုနှင့် ကိုက်ညီမှုအားလုံးအတွက် iterator တစ်ခုကို ပြန်ပေးသည်။ နည်းလမ်း၏ ပထမပါရာမီတာတွင်
ရီဂျက်စ်ဖတ်ကို ထည့်သွင်းပေးပါ။ ဒုတိယပါရာမီတာတွင်
ရီဂျက်စ်ဖတ်ကို ရှာမည့် စာသားကို သတ်မှတ်ပေးပါ။ တတိယ
ထည့်သွင်းရန် မလိုအပ်သောပါရာမီတာတွင် အလံများ သတ်မှတ်နိုင်သည်။
နည်းလမ်းသည် ဘယ်မှညာသို့ ရှာဖွေရင်း
ကိုက်ညီမှုအားလုံးကို စစ်ဆေးသည်။
ဝါကျဖွဲ့ပုံ
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 object အရာဝတ္ထု နှစ်ခု ရရှိမည်ဖြစ်သည်။
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
ဤအရာဝတ္ထုများတွင် ရီဂျက်စ်ဖတ်နှင့် ကိုက်ညီမှုအားလုံးအကြောင်း အချက်အလက်များ ပါဝင်ပြီး tuple ပုံစံဖြင့် ရှိသည်။ ကျွန်ုပ်တို့သည် ၎င်းတို့ထဲမှ အတိုင်းအတာအမှတ်အသားအလိုက် ကိုက်ညီမှုများကို ထုတ်ပြနိုင်သည်။
for el in res:
print(el[0])
ကုဒ်အလုပ်လုပ်ပြီးနောက် ရရှိသော ရလဒ်။
'123'
'456'
နမူနာ
ပိုမိုရှင်းလင်းစေရန် ကိုက်ညီမှုများကို ရှာဖွေရာတွင် အုပ်စုများ (groups) ကို အသုံးပြုပါစို့။ အရာဝတ္ထုများကို ကွင်းဆက်ဖြင့် ဖြတ်သန်းရာတွင် ပထမကိုက်ညီမှုကို ထုတ်ပြပါစို့ (၎င်းကို သုညအုပ်စုအဖြစ် ယူဆပါမည်)၊ ထို့အပြင် ၎င်း၏အစိတ်အပိုင်းများကို သူတို့၏အုပ်စုများအဖြစ် ထပ်မံခွဲခြား၍ ထုတ်ပြပါစို့။
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မော်ဂျူး၏၊
စာသားတစ်ခုကို သတ်မှတ်ထားသော ခွဲခြားသတ်မှတ်ချက်အလိုက် စာရင်းတစ်ခုအဖြစ် ခွဲထုတ်သည်