⊗pyPmRELAB 72 of 129 menu

Python ရှိ ရီဂျက်စ် ပုံစံများတွင် Positive နှင့် Negative Lookaround

တစ်ခါတစ်ရံတွင် ဤကဲ့သို့သော ပြဿနာအမျိုးအစားကို ဖြေရှင်းရန် လိုအပ်ပါသည် - စာကြောင်း 'aaa' ကို ရှာဖွေပြီး '!' သို့ အစားထိုးရန်၊ သို့သော် 'aaa' ၏ နောက်တွင် 'x' ရှိမှသာ၊ ထို 'x' ကိုမူ အစားမထိုးဘဲထားရန်။ အကယ်၍ ကျွန်ုပ်တို့သည် ဤအလုပ်ကို 'တိုက်ရိုက်' ဖြေရှင်းရန် ကြိုးစားပါက မအောင်မြင်နိုင်ပါ -

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # ရလဒ် '! baaa' ကို ပြသမည်၊ သို့သော် ကျွန်ုပ်တို့ လိုချင်သည်မှာ '!x baaa'

Lookahead (ရှေ့ကြိုကြည့်ခြင်း)

ဤပြဿနာကို ဖြေရှင်းရန်၊ 'x' ကို အစားမထိုးရန် ပြောပြနိုင်သည့် နည်းလမ်းတစ်ခု လိုအပ်ပါသည်။ ၎င်းကို အထူးကွင်းစကွင်းပိတ် (?= ) များဖြင့် လုပ်ဆောင်နိုင်ပြီး၊ ထိုကွင်းများသည် ရှေ့သို့ကြည့်၍ ယူဆောင်မသွားပါ။

ဤကွင်းများကို positive lookahead ဟု ခေါ်ပါသည်။ Positive ဆိုသည်မှာ 'x' (ကျွန်ုပ်တို့၏ ကိစ္စတွင်) ရှိရမည် - ထိုအခါမှသာ အစားထိုးခြင်း ဖြစ်မည်။

ကျွန်ုပ်တို့၏ ပြဿနာကို ဖြေရှင်းရန် ဤကွင်းများကို အသုံးပြုကြည့်ပါစို့ -

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # ရလဒ် '!x baaa' ကို ပြသမည်

Negative lookahead လည်းရှိပါသည် - (?! ) - ၎င်းသည် ဆန့်ကျင်ဘက်အနေဖြင့်၊ တစ်စုံတစ်ရာ မရှိရမည်ဟု ဆိုလိုပါသည်။ အောက်ပါ ဥပမာတွင်၊ 'aaa' ၏ နောက်တွင် 'x' မရှိမှသာ အစားထိုးမှု ဖြစ်ပေါ်မည် -

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # ရလဒ် 'aaax !b' ကို ပြသမည်

Lookbehind (နောက်ကြိုကြည့်ခြင်း)

အလားတူပင် positive lookbehind ရှိပါသည် - (?<= )။ အောက်ပါ ဥပမာတွင်၊ 'aaa' ၏ ရှေ့တွင် 'x' ရှိမှသာ အစားထိုးမှု ဖြစ်ပေါ်မည် -

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # ရလဒ် 'x!' ကို ပြသမည်

ထို့အပြင် negative lookbehind လည်းရှိပါသည် - (?<! )။ အောက်ပါ ဥပမာတွင်၊ 'aaa' ၏ ရှေ့တွင် 'x' မရှိမှသာ အစားထိုးမှု ဖြစ်ပေါ်မည် -

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # ရလဒ် 'b!' ကို ပြသမည်

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

အောက်ပါ function အမည်များပါဝင်သည့် စာကြောင်းကို ပေးထားပါသည် -

txt = 'func1() func2() func3()'

ထိုစာကြောင်းမှ function အမည်များ array တစ်ခု ရယူပါ။

အောက်ပါ tag တစ်ခုပါဝင်သည့် စာကြောင်းကို ပေးထားပါသည် -

txt = '<a href="" class="eee" id="zzz">'

ထို tag ၏ attribute အမည်များ array တစ်ခု ရယူပါ။

အောက်ပါ variable များပါဝင်သည့် စာကြောင်းကို ပေးထားပါသည် -

txt = '$aaa $bbb $ccc xxxx'

ဒေါ်လာသင်္ကေတ ($) ၏ ရှေ့တွင်ရှိသော စာကြောင်းခွဲများ (substrings) ကို ရယူပါ။

မြန်မာ
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 များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်