Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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 များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်