Python ရှိ Regular Expression များရှိ စာလုံးအုပ်စုများ
စာလုံးအုပ်စုတစ်ခုလုံးကို တစ်ခါတည်း ရွေးချယ်နိုင်စေမယ့် အထူးကုဒ်များ ရှိပါတယ်။
ကုဒ် \d ဆိုသည်မှာ 0 မှ 9 အထိ ဂဏန်းကို ဆိုလိုပါတယ်။
ကုဒ် \w ဆိုသည်မှာ ဂဏန်း၊ အင်္ဂလိပ်အက္ခရာ သို့မဟုတ် အောက်မျဉ်းဆွဲသင်္ကေတကို ဖော်ပြပါတယ်။
ကုဒ် \s ဆိုသည်မှာ အာကွက် သို့မဟုတ် အာကွက်ဆိုင်ရာ စာလုံး (space, newline, tab) တစ်ခုခုကို ဖော်ပြပါတယ်။
အက္ခရာအကြီးဖြင့် ရေးခြင်းဖြင့် ကုဒ်၏ အဓိပ္ပာယ်ကို ပြောင်းပြန်လှန်နိုင်ပါတယ်။
ဥပမာ - \d ဆိုသည်မှာ ဂဏန်းဖြစ်ပါက \D ဆိုသည်မှာ ဂဏန်းမဟုတ်သော စာလုံးဖြစ်ပါတယ်။
ဥပမာ
ဂဏန်းအားလုံးကို ရှာကြည့်ရအောင်:
txt = '1 12 123'
res = re.sub('\d', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'! !! !!!'
ဥပမာ
အကြိမ်ရေထပ်ခါတလဲလဲ ပြုလုပ်သည့် အော်ပရေတာများသည် အုပ်စုကုဒ်များကို တစ်ခုတည်းသော အရာအဖြစ် ရေတွက်ပါတယ်၊
ဆိုလိုသည်မှာ အုပ်စုဖွဲ့ ကွင်းစွက်များ မလိုအပ်ပါ။
နောက်ဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်ပါတယ် - ဂဏန်း (0 မှ 9) တစ်ကြိမ် သို့မဟုတ် တစ်ကြိမ်ထက်ပိုပြီး ဖြစ်ပေါ်ခြင်း:
txt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'! ! ! abc @@@'
ဥပမာ
နောက်ဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်ပါတယ် - မည်သည့်အရာမဆို တစ်ကြိမ် သို့မဟုတ် တစ်ကြိမ်ထက်ပိုပြီး ဖြစ်ပေါ်ခြင်း၊ သို့သော် ဂဏန်း (0 မှ 9) မဖြစ်ရပါ:
txt = '123abc3@@'
res = re.sub('\D+', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'123!3!'
ဥပမာ
ဤဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်ပါတယ် - အာကွက်ဆိုင်ရာ စာလုံး တစ်ကြိမ် ဖြစ်ပေါ်ခြင်း:
txt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'1!12!123!abc!@@@'
ဥပမာ
ဤဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်ပါတယ် - အာကွက်ဆိုင်ရာ စာလုံး မဟုတ်သည့် စာလုံး တစ်ကြိမ် သို့မဟုတ် တစ်ကြိမ်ထက်ပိုပြီး ဖြစ်ပေါ်ခြင်း။
အာကွက်များဖြင့် ခွဲထားသည့် စာကြောင်းခွဲအားလုံးကို '!' ဖြင့် အစားထိုးသွားပါလိမ့်မယ်:
txt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'! ! ! ! !'
ဥပမာ
ဤဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်ပါတယ် - ဂဏန်း သို့မဟုတ် အက္ခရာ တစ်ကြိမ် သို့မဟုတ် တစ်ကြိမ်ထက်ပိုပြီး ဖြစ်ပေါ်ခြင်း။
ဂဏန်းများနှင့် အက္ခရာများဖြင့် ဖွဲ့စည်းထားသည့် စာကြောင်းခွဲအားလုံးကို '!' ဖြင့် အစားထိုးသွားပါလိမ့်မယ်:
txt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'! ! ! ! @@@'
ဥပမာ
ဤဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်ပါတယ် - ဂဏန်း မဟုတ်ပဲ အက္ခရာလည်း မဟုတ်သည့် စာလုံး တစ်ကြိမ် သို့မဟုတ် တစ်ကြိမ်ထက်ပိုပြီး ဖြစ်ပေါ်ခြင်း။
ကျွန်ုပ်တို့၏ ကိစ္စတွင် '@@@' နှင့် အာကွက်အားလုံး (၎င်းတို့သည်လည်း ဂဏန်းမဟုတ်၊ အက္ခရာလည်းမဟုတ်ပါ) တို့သည် ဤသတ်မှတ်ချက်နှင့် ကိုက်ညီပါတယ်။
အဆုံးတွင် '!' တစ်လုံးရှိသည်ကို သတိပြုပါ - ၎င်းသည် ' @@@' (ရှေ့တွင် အာကွက်ပါသည့် စာကြောင်း) အဖြစ်သို့ ပြောင်းလဲသွားပါတယ်:
txt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)
print(res)
ကုဒ်ဖြင့် ရလဒ်:
'1!12!123!Abc!'
လက်တွေ့လေ့ကျင့်ခန်းများ
စာကြောင်းတစ်ခုပေးထားသည်:
txt = 'a1a a2a a3a a4a a5a aba aca'
အောက်ပါအတိုင်းဖြစ်သည့် စာကြောင်းများကို ရှာဖွေမည့် regular expression တစ်ခုကို ရေးပါ - အနားနှစ်ဖက်တွင် 'a' အက္ခရာများရှိပြီး ၎င်းတို့ကြားတွင် ဂဏန်းတစ်လုံးရှိခြင်း။
စာကြောင်းတစ်ခုပေးထားသည်:
txt = 'a1a a22a a333a a4444a a55555a aba aca'
အောက်ပါအတိုင်းဖြစ်သည့် စာကြောင်းများကို ရှာဖွေမည့် regular expression တစ်ခုကို ရေးပါ - အနားနှစ်ဖက်တွင် 'a' အက္ခရာများရှိပြီး ၎င်းတို့ကြားတွင် မည်မျှပင် ဂဏန်းရှိရှိ (ဂဏန်းအရေအတွက် မည်မျှများများ) ရှိခြင်း။
စာကြောင်းတစ်ခုပေးထားသည်:
txt = 'aa a1a a22a a333a a4444a a55555a aba aca'
အောက်ပါအတိုင်းဖြစ်သည့် စာကြောင်းများကို ရှာဖွေမည့် regular expression တစ်ခုကို ရေးပါ - အနားနှစ်ဖက်တွင် 'a' အက္ခရာများရှိပြီး ၎င်းတို့ကြားတွင် မည်မျှပင် ဂဏန်းရှိရှိ (ဂဏန်းအရေအတွက် သုည လည်းအပါအဝင်၊ ဆိုလိုသည်မှာ 'aa' စာကြောင်း) ရှိခြင်း။
စာကြောင်းတစ်ခုပေးထားသည်:
txt = 'avb a1b a2b a3b a4b a5b abb acb'
အောက်ပါအတိုင်းဖြစ်သည့် စာကြောင်းများကို ရှာဖွေမည့် regular expression တစ်ခုကို ရေးပါ - အနားနှစ်ဖက်တွင် 'a' နှင့် 'b' အက္ခရာများရှိပြီး ၎င်းတို့ကြားတွင် - ဂဏန်းမဟုတ်ပဲ အာကွက်လည်း မဟုတ်သော စာလုံး ရှိခြင်း။
စာကြောင်းတစ်ခုပေးထားသည်:
txt = 'ave a#b a2b a$b a4b a5b a-b acb'
အောက်ပါအတိုင်းဖြစ်သည့် စာကြောင်းများကို ရှာဖွေမည့် regular expression တစ်ခုကို ရေးပါ - အနားနှစ်ဖက်တွင် 'a' နှင့် 'b' အက္ခရာများရှိပြီး ၎င်းတို့ကြားတွင် - အက္ခရာမဟုတ်၊ ဂဏန်းမဟုတ်၊ အာကွက်လည်း မဟုတ်သော စာလုံး ရှိခြင်း။
စာကြောင်းတစ်ခုပေးထားသည်:
txt = 'ave a#a a2a a$a a4a a5a a-a aca'
အာကွက်အားလုံးကို '!' ဖြင့် အစားထိုးမည့် regular expression တစ်ခုကို ရေးပါ။