Python တွင် ရီဂျယ်လာ စကားစာများအတွက် သင်္ကေတများ
ရီဂျယ်လာများနှင့် အလုပ်လုပ်သည့် နည်းလမ်းများအတွက် မဖြစ်မနေ မဟုတ်သော သတ်မှတ်ချက်တစ်ခုအနေဖြင့် သင်္ကေတများကို သတ်မှတ်ရန် အောက်ပါ ဖွဲ့စည်းပုံကို အသုံးပြုပါသည်။
flags=re.သင်္ကေတအမည်
ရီဂျယ်လာများနှင့် အလုပ်လုပ်ရန် အဓိက သင်္ကေတများ
| သင်္ကေတ | ရည်ရွယ်ချက် |
|---|---|
re.IGNORECASE |
အက္ခရာများ ရေးသားသည့် အက္ခရာအသေးအကြီး အနေအထားကို လျစ်လျူရှုခြင်း။ |
re.DOTALL |
ပုဒ်ဖြတ်သင်္ကေတ (dot) သည် မည်သည့်အက္ခရာကိုမဆို ကိုယ်စားပြုသည်၊ စာကြောင်းအသစ် ပြောင်းခြင်းကိုပါ ပါဝင်သည်။ |
re.I |
အက္ခရာအသေးအကြီး အနေအထားကို မခံစားရသော ရှာဖွေမှုကို ပြုလုပ်ပေးသည်။ |
re.L |
လက်ရှိဘာသာစကားနှင့်အညီ စကားလုံးများကို ရှာဖွေသည်။
�အနက်ဖွင့်ဆိုချက်သည် စာလုံးအုပ်စု (\w နှင့် \W) ကို ထိခိုက်စေပြီး
စကားလုံး နယ်နမိတ် (\b နှင့်
\B) ၏ အပြုအမူကိုလည်း ထိခိုက်စေသည်။
|
re.M |
သင်္ကေတ $ သည် မည်သည့်စာသားစာကြောင်း၏ အဆုံးတွင်မဆို (စာသားတစ်ခုလုံး၏ အဆုံးတွင်သာမက) ရှာဖွေမှုကို လုပ်ဆောင်ပြီး
သင်္ကေတ ^ သည် မည်သည့်စာသားစာကြောင်း၏ အစတွင်မဆို (စာသားတစ်ခုလုံး၏ အစတွင်သာမက) ရှာဖွေမှုကို လုပ်ဆောင်သည်။
|
re.S |
ပုဒ်ဖြတ်သင်္ကေတ (.) ၏ တန်ဖိုးကို စာကြောင်းအသစ် အပါအဝင် မည်သည့်အက္ခရာနှင့်မဆို ကိုက်ညီမှုအဖြစ် ပြောင်းလဲပေးသည်။
|
re.U |
Unicode စာလုံးအစုအဝေးနှင့်အညီ စာလုံးများကို အနက်ဖွင့်ဆိုသည်။ ဤသင်္ကေတသည်
\w, \W, \b,
\B တို့၏ အပြုအမူကို သက်ရောက်မှုရှိသည်။ Python 3+ တွင် ဤသင်္ကေတကို
စံအတိုင်း သတ်မှတ်ထားသည်။
|
re.X |
ရီဂျယ်လာ စကားစာ၏ စာကြောင်းများစွာ ဖွဲ့စည်းပုံကို ခွင့်ပြုပေးသည်။ ၎င်းသည်
ပုံစံအတွင်းရှိ ကြားနေရာများကို လျစ်လျူရှုထားသည် ([] အစုအတွင်းရှိ ကြားနေရာများ သို့မဟုတ် backslash ဖြင့် ရှောင်ထားသည့်အခါများမှလွဲ၍) နှင့်
ရှောင်ထားခြင်းမရှိသော '#' ကို မှတ်ချက်တစ်ခုအဖြစ် ကိုင်တွယ်ဆောင်ရွက်သည်။
|
ဥပမာ
သင်္ကေတ re.IGNORECASE ကို အသုံးပြု၍
အက္ခရာအသေးအကြီး အနေအထားကို လျစ်လျူရှုနိုင်သည်။ ၎င်းကို
မည်သို့လုပ်ဆောင်သည်ကို ကြည့်ရအောင်။ ဤဥပမာတွင်
ရီဂျယ်လာက အက္ခရာအသေးများကိုသာ ရှာတွေ့မည်။
txt = 'aaa bbb CCC DDD'
res = re.sub('[a-z]+', '!', txt)
print(res)
ကုဒ် လုပ်ဆောင်ချက်၏ ရလဒ်။
'! ! CCC DDD'
ဥပမာ
ယခု နည်းလမ်း၏ စတုတ္ထ သတ်မှတ်ချက်အတွင်း
သင်္ကေတ re.IGNORECASE ကို ထည့်သွင်းပါက ရီဂျယ်လာသည်
အက္ခရာအသေးအကြီး အနေအထားအားလုံးတွင် ရှာဖွေရန် စတင်မည်။
txt = 'aaa AAA bbb BBB'
res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE)
print(res)
ကုဒ် လုပ်ဆောင်ချက်၏ ရလဒ်။
'! ! ! !'
ဥပမာ
ရီဂျယ်လာဖြင့် စာကြောင်းအသစ်ပြောင်းခြင်းအားလုံးကို ရှာဖွေကြည့်ရအောင်။
txt = '''aaa
bbb'''
res = re.sub('\n', '!', txt)
print(res)
လုပ်ဆောင်ပြီးသော ကုဒ်၏ ရလဒ်။
'aaa!bbb'
ဥပမာ
သို့သော်၊ အက္ခရာအားလုံးကို အစားထိုးရန်လိုအပ်ပါက၊ ရီဂျယ်လာတွင် ပုဒ်ဖြတ်သင်္ကေတ (dot) ကိုထည့်သွင်းပါက စာကြောင်းအသစ်ပြောင်းခြင်းများကို �မ်းယူမည်မဟုတ်ပါ။
txt = '''aaa
bbb'''
res = re.sub('.', '!', txt)
print(res)
လုပ်ဆောင်ပြီးသော ကုဒ်၏ ရလဒ်။
'!!!
!!!'
ဥပမာ
ဤအမှားကို ပြင်ဆင်ရန်၊
သင်္ကေတ re.DOTALL ကို အသုံးပြုသင့်သည်။
res = re.sub('.', '!', txt, flags=re.DOTALL)
print(res)
လုပ်ဆောင်ပြီးသော ကုဒ်၏ ရလဒ်။
'!!!!!!!'
ဥပမာ
သတ်မှတ်ချက်အတွင်း သင်္ကေတများစွာကိုလည်း ပေးပို့နိုင်သည်၊
၎င်းတို့အကြား လုပ်ဆောင်ချက် + ကိုထည့်သွင်းပါ။
စာကြောင်း၏အဆုံးတွင် အက္ခရာ 'a' ကို
အရင်အစားထိုးကြည့်ရအောင်။
txt = '''
aaa
AAA
aaa'''
res = re.sub('aaa
, '!', txt)
print(res)
လုပ်ဆောင်ပြီးသော ကုဒ်၏ ရလဒ်။
'''
aaa
AAA
!
'''
ဥပမာ
ယခု သင်္ကေတ re.M ကို ထည့်သွင်းကြည့်ရအောင်။
res = re.sub('aaa
, '!', txt, flags=re.M)
print(res)
လုပ်ဆောင်ပြီးသော ကုဒ်၏ ရလဒ်။
'''
!
AAA
!
'''
ဥပမာ
ယခု အက္ခရာအသေးအကြီး အနေအထားကို လျစ်လျူရှုရန် သင်္ကေတကို အသုံးပြုကြည့်ရအောင်။
res = re.sub('aaa
, '!', txt, flags=re.M+re.IGNORECASE)
print(res)
လုပ်ဆောင်ပြီးသော ကုဒ်၏ ရလဒ်။
'''
!
!
!
'''