Regular Expressions များတွင် စာလုံးများကို ပြန်လည်အသုံးပြုသည့် Operators များ
အကြိမ်ရေအတိအကျဖြင့် ထပ်ခါထပ်ခါဖြစ်ပေါ်သည့် စာလုံးကို ဖော်ပြရန်လိုအပ်သည့် အခြေအနေများရှိပါသည်။ တိကျသော အကြိမ်ရေကို မသိပါက၊ ၎င်းကို အကြိမ်ရေအနည်းငယ်ရေးနိုင်ပါသည် - 'aaaa'။ သို့သော် တစ်ကြိမ် သို့မဟုတ် ထို့ထက်ပို၍ ပြန်လုပ်ပါ ကဲ့သို့ပြောလိုပါက ဘာလုပ်ရမည်နည်း။
ထိုသို့အတွက် ထပ်ခါထပ်ခါဖြစ်စေသည့် operators (quantifiers) များရှိပါသည် - plus + (တစ်ကြိမ် သို့မဟုတ် ထို့ထက်ပို)၊ star * (သုည သို့မဟုတ် ထို့ထက်ပို) နှင့် question mark ? (သုည သို့မဟုတ် တစ်ကြိမ်)။ ဤ operators များသည် ၎င်းတို့၏ရှေ့တွင်ရှိသော စာလုံးအပေါ်တွင် သက်ရောက်မှုရှိပါသည်။
ဥပမာများဖြင့် ဤ operators များ၏လုပ်ဆောင်ချက်ကို ကြည့်ရအောင်။
ဥပမာ
Pattern စာလုံး 'x'၊ စာလုံး 'a' တစ်ကြိမ် သို့မဟုတ် ထို့ထက်ပို၊ စာလုံး 'x' အရ substring အားလုံးကို ရှာကြည့်ပါမည်။
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
ကုဒ်အလုပ်လုပ်သည့် ရလဒ်။
'xx ! ! ! xbx'
ဥပမာ
Pattern စာလုံး 'x'၊ စာလုံး 'a' သုည သို့မဟုတ် ထို့ထက်ပို၊ စာလုံး 'x' အရ substring အားလုံးကို ရှာကြည့်ပါမည်။
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
ကုဒ်အလုပ်လုပ်သည့် ရလဒ်။
'! ! ! ! xbx'
ဥပမာ
Pattern စာလုံး 'x'၊ စာလုံး 'a' သုည သို့မဟုတ် တစ်ကြိမ်၊ စာလုံး 'x' အရ substring အားလုံးကို ရှာကြည့်ပါမည်။
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
ကုဒ်အလုပ်လုပ်သည့် ရလဒ်။
'! ! xaax xbx'
လက်တွေ့လေ့ကျင့်ခန်းများ
စာတန်းတစ်ခုပေးထားသည်။
txt = 'aa aba abba abbba abca abea'
Pattern စာလုံး 'a'၊ စာလုံး 'b' မည်မျှပင်ဖြစ်စေ၊ စာလုံး 'a' အရ 'aba'၊ 'abba'၊ 'abbba' စာတန်းများကို ရှာတွေ့စေမည့် regular expression တစ်ခုကိုရေးပါ။
စာတန်းတစ်ခုပေးထားသည်။
txt = 'aa aba abba abbba abca abea'
Pattern စာလုံး 'a'၊ စာလုံး 'b' မည်မျှပင်ဖြစ်စေ (တစ်ကြိမ်မှ မပါဝင်သည်လည်းအပါအဝင်)၊ စာလုံး 'a' အရ 'aa'၊ 'aba'၊ 'abba'၊ 'abbba' စာတန်းများကို ရှာတွေ့စေမည့် regular expression တစ်ခုကိုရေးပါ။
စာတန်းတစ်ခုပေးထားသည်။
txt = 'aa aba abba abbba abca abea'
Pattern စာလုံး 'a'၊ စာလုံး 'b' တစ်ကြိမ် သို့မဟုတ် သုညကြိမ်၊ စာလုံး 'a' အရ 'aa'၊ 'aba' စာတန်းများကို ရှာတွေ့စေမည့် regular expression တစ်ခုကိုရေးပါ။
စာတန်းတစ်ခုပေးထားသည်။
txt = 'aa aba abba abbba abca abea'
'abca' နှင့် 'abea' တို့ကို မယူဘဲ 'aa'၊ 'aba'၊ 'abba'၊ 'abbba' စာတန်းများကိုသာ ရှာတွေ့စေမည့် regular expression တစ်ခုကိုရေးပါ။