⊗pyPmREESCh 36 of 129 menu

Python တွင် Regular Expression များတွင် အထူးစာလုံးများကို Escape လုပ်ခြင်း

အထူးစာလုံးတစ်လုံးကို မိမိကိုယ်တိုင် ကိုယ်စားပြုစေလိုသည်ဆိုပါစို့။ ၎င်းအတွက် backslash (\) ကိုအသုံးပြု၍ ၎င်းအထူးစာလုံးကို escape လုပ်ရပါမည်။ ဥပမာများဖြင့် ကြည့်ရအောင်။

ဥပမာ

အောက်ပါဥပမာတွင်၊ regular expression ရေးသူသည် ရှာဖွေမှုပုံစံ (pattern) ကို ဤသို့ဖြစ်စေလိုသည် - 'a' စာလုံး ၊ ထို့နောက် အပေါင်း '+'၊ ထို့နောက် 'x' စာလုံး။ သို့သော်၊ ကုဒ်ရေးသူသည် '+' သင်္ကေတကို escape မလုပ်ထားသဖြင့် တကယ့်ရှာဖွေမှုပုံစံမှာ ဤသို့ဖြစ်နေသည်- 'a' စာလုံး'a' တစ်ကြိမ် (သို့) တစ်ကြိမ်ထက်ပို၍၊ ထို့နောက် 'x' စာလုံး'x'-

txt = 'a+x ax aax aaax' res = re.sub('a+x', '!', txt) print(res)

ကုဒ်ဖြင့် ရလဒ်-

'a+x ! ! !'

ဥပမာ

ယခုတစ်ခါ ရေးသူသည် အပေါင်းသင်္ကေတကို backslash ဖြင့် escape လုပ်ထားသည်။ ယခုဆိုလျှင် ရှာဖွေမှုပုံစံမှာ လိုအပ်သလို ဖြစ်နေပါပြီ- 'a' စာလုံး 'a'၊ ထို့နောက် အပေါင်း '+'၊ ထို့နောက် 'x' စာလုံး'x'-

txt = 'a+x ax aax aaax' res = re.sub('a\+x', '!', txt) print(res)

ကုဒ်ဖြင့် ရလဒ်-

'! ax aax aaax'

ဥပမာ

ဤဥပမာတွင် ပုံစံမှာ ဤသို့ဖြစ်သည်- 'a' စာလုံး'a'၊ ထို့နောက် အစက်'.', ထို့နောက် 'x' စာလုံး'x'-

txt = 'a.x abx azx' res = re.sub('a\.x', '!', txt) print(res)

ကုဒ်ဖြင့် ရလဒ်-

'! abx azx'

ဥပမာ

အောက်ပါဥပမာတွင် ရေးသူသည် အစက်ကို escape လုပ်ရန် မေ့သွားပြီး �စက်မထောက်လှမ်းထားသောကြောင့် မည်သည့်စာလုံးမဆို ကိုက်ညီနိုင်သဖြင့် စာကြောင်းခွဲအားလုံးနှင့် ကိုက်ညီသွားသည်-

txt = 'a.x abx azx' res = re.sub('a.x', '!', txt) print(res)

ကုဒ်ဖြင့် ရလဒ်-

'! ! !'

မှတ်ချက်

အစက်သင်္ကေတကို မိမိကိုယ်တိုင်ကိုယ်စားပြုစေလိုသည့်အခါ backslash ကို မေ့သွားလျှင် (သို့) မထည့်မိလျှင် သတိထားမိမည်မဟုတ်ပါ-

res = re.sub('a.x', '!', 'a.x') print(res) # '!' ကို ပြန်ပေးမည်၊ ကျွန်ုပ်တို့လိုချင်သည့်အတိုင်း

မျက်မြင်အားဖြင့် အလုပ်လုပ်နေသကဲ့သို့ရှိသည် (အကြောင်းမှာ အစက်သည် မည်သည့်စာလုံးကိုမဆို ကိုယ်စားပြုနိုင်ပြီး သာမန်အစက်'.' လည်း အပါအဝင်ဖြစ်သောကြောင့်)။ သို့သော် အစားထိုးမှုပြုလုပ်မည့် စာကြောင်းကို ပြောင်းလိုက်လျှင် ကျွန်ုပ်တို့၏ အမှားကို တွေ့မြင်ရမည်-

res = re.sub('a.x', '!', 'a.x abx azx') print(res) # '! ! !' ကို ပြန်ပေးမည်၊ မျှော်လင့်ထားသည်မှာ '! abx azx'

အထူးသင်္ကေတများနှင့် သာမန်သင်္ကေတများ စာရင်း

သာမန်စာလုံးတစ်လုံးကို escape လုပ်လျှင် ဘာမှမဖြစ်ပါ - ၎င်းသည် မိမိကိုယ်တိုင်ကိုယ်စားပြုနေဦးမည်။ ခြွင်းချက်မှာ ဂဏန်းများဖြစ်ပြီး ၎င်းတို့ကို escape မလုပ်နိုင်ပါ။

ပေးထားသော သင်္ကေတတစ်ခုသည် အထူးသင်္ကေတ (special character) ဟုတ်မဟုတ် သံသယဝင်တတ်ပါသည်။ အချို့သည် သံသယရှိသော သင်္ကေတအားလုံးကို ရှေ့ဆက်တိုး၍ escape လုပ်တတ်ကြသည်။ သို့သော်၊ ဤသည် မကောင်းသောအလေ့အကျင့်တစ်ခုဖြစ်သည် (regular expression ကို backslash များဖြင့် ရှုပ်ထွေးစေသည်)။

အထူးသင်္ကေတများမှာ- $ ^ . * + ? \ / {} [] () |

အထူးသင်္ကေတများ မဟုတ်ပါ- @ : , ' " - _ = < > % # ~ `& !

လက်တွေ့လေ့ကျင့်ခန်းများ

စာကြောင်းတစ်ခုပေးထားသည်-

txt = 'a.a aba aea'

'a.a' စာကြောင်းခွဲကို ကျန်အရာများကို မကောက်ယူဘဲ ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ။

စာကြောင်းတစ်ခုပေးထားသည်-

txt = '2+3 223 2223'

'2+3' စာကြောင်းခွဲကို ကျန်အရာများကို မကောက်ယူဘဲ ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ။

စာကြောင်းတစ်ခုပေးထားသည်-

txt = '23 2+3 2++3 2+++3 345 567'

'2+3''2++3''2+++3' စာကြောင်းခွဲများကို ကျန်အရာများကို မကောက်ယူဘဲ ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ (+ သည် မည်မျှပမာဏရှိသည်ဖြစ်စေ ကိုက်ညီမည်)။

စာကြောင်းတစ်ခုပေးထားသည်-

txt = '23 2+3 2++3 2+++3 445 677'

'23''2+3''2++3''2+++3' စာကြောင်းခွဲများကို ကျန်အရာများကို မကောက်ယူဘဲ ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ။

စာကြောင်းတစ်ခုပေးထားသည်-

txt = '*+ *q+ *qq+ *qqq+ *qqq qqq+'

'*q+''*qq+''*qqq+' စာကြောင်းခွဲများကို ကျန်အရာများကို မကောက်ယူဘဲ ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ။

စာကြောင်းတစ်ခုပေးထားသည်-

txt = '[abc] {abc} abc (abc) [abc]'

စတုရန်းကွင်းထဲတွင်ရှိသော စာကြောင်းခွဲများကို ရှာဖွေပြီး ၎င်းတို့ကို '!' ဖြင့် အစားထိုးပေးမည့် regular expression တစ်ခုကို ရေးပါ။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်