JavaScript Regular Expression များကို ဘရောက်ဇာထဲတွင် စမ်းသပ်ခြင်း
Regular expression (Regex) ဆိုသည်မှာ စာသားများအတွင်း သတ်မှတ်ထားသော ပုံစံစနစ်များကို ရှာဖွေရန်၊ တိုက်ဆိုင်စစ်ဆေးရန်နှင့် ထုတ်ယူရန်အတွက် အသုံးပြုသည့် အစွမ်းထက်သော နည်းလမ်းတစ်ခု ဖြစ်သည်။ ဤ Regex စမ်းသပ်ကိရိယာသည် JavaScript regular expression များကို သင့်ဝဘ်ဘရောက်ဇာထဲတွင် တိုက်ရိုက်စမ်းသပ်နိုင်ရန် ကူညီပေးပါသည်။ သတ်မှတ်ထားသော pattern များသည် နမူနာစာသားများနှင့် မည်သို့ကိုက်ညီမှုရှိသည်ကို ချက်ချင်းမီးမောင်းထိုးပြသပေးမည်ဖြစ်ပြီး capture group များ၏ အလုပ်လုပ်ပုံကိုလည်း အလွယ်တကူ မြင်တွေ့နိုင်မည် ဖြစ်သည်။
ထည့်သွင်းရမည့် အချက်အလက်များနှင့် အသုံးပြုနိုင်သော Flags များ
ဤကိရိယာကို အသုံးပြုရန် အောက်ပါအချက်အလက်များကို ထည့်သွင်းပေးရပါမည်။
- ပုံစံ: သင်စမ်းသပ်လိုသော regular expression pattern ဖြစ်သည် (ဥပမာ-
\d+)။ - Flags: Pattern ၏ လုပ်ဆောင်ပုံကို ပြောင်းလဲပေးနိုင်သော အောက်ပါ flag များကို ရွေးချယ်နိုင်သည်။
- g (Global): ပထမဆုံး ကိုက်ညီသည့်အရာတစ်ခုတည်းတင်မကဘဲ စာသားတစ်ခုလုံးရှိ ကိုက်ညီမှုအားလုံးကို ရှာဖွေပေးသည်။
- i: စာလုံးအကြီးအသေး ကွာခြားချက်ကို လျစ်လျူရှု၍ ရှာဖွေပေးသည်။
- m (Multiline):
^နှင့်$သင်္ကေတများကို စာသားတစ်ခုလုံး၏ အစနှင့် အဆုံးအစား စာကြောင်းတစ်ကြောင်းချင်းစီ၏ အစနှင့် အဆုံးအဖြစ် သတ်မှတ်ပေးသည်။ - s:
.သင်္ကေတကို စာကြောင်းအသစ်ကူးခြင်း (line breaks) များနှင့်ပါ ကိုက်ညီမှုရှိစေရန် ခွင့်ပြုသည်။
- စမ်းသပ်မည့် စာသား: သင့် pattern နှင့် တိုက်ဆိုင်စစ်ဆေးလိုသော နမူနာစာသားများ ဖြစ်သည်။
ရလဒ်များအား ဖတ်ရှုခြင်းနှင့် ကန့်သတ်ချက်များ
စမ်းသပ်မှုပြုလုပ်ပြီးပါက အောက်ပါရလဒ်များကို ချက်ချင်းမြင်တွေ့ရမည် ဖြစ်သည်။
- မီးမောင်းထိုးပြထားသော ကိုက်ညီမှုများ: စမ်းသပ်မည့်စာသားထဲတွင် pattern နှင့် ကိုက်ညီသည့် အစိတ်အပိုင်းများကို အရောင်ဖြင့် မီးမောင်းထိုးပြသပေးသည်။
- ကိုက်ညီမှုများ: ကိုက်ညီသည့် ရလဒ်အားလုံးကို စာရင်းအဖြစ် ဖော်ပြပေးပြီး သတ်မှတ်ထားသော capture group များရှိပါက အုပ်စု
{n}ဟု ခွဲခြားပြသပေးသည်။ - ကိုက်ညီမှုများ:
{count}: ရှာဖွေတွေ့ရှိသည့် ကိုက်ညီမှုစုစုပေါင်း အရေအတွက်ကို ပြသပေးသည်။ - စာလုံးရေ: ထည့်သွင်းထားသော စာသား၏ စာလုံးရေ အရေအတွက်ကို ဖော်ပြပေးသည်။
အကယ်၍ 'g' (Global) flag ကို မရွေးချယ်ထားပါက ပထမဆုံး ကိုက်ညီသည့် ရလဒ်တစ်ခုတည်းကိုသာ ပြန်ပေးမည် ဖြစ်သည်။ 'g' flag ကို ရွေးချယ်ထားပါက အများဆုံး ကိုက်ညီမှု အရေအတွက် ၁,၀၀၀ အထိ ရှာဖွေပေးမည်ဖြစ်ပြီး ကိုက်ညီမှုကတ်ပြား (match cards) အခု ၁၀၀ အထိသာ အများဆုံး ပြသပေးမည် ဖြစ်သည်။ ပြသနိုင်သည့် ကန့်သတ်ချက်ထက် ကျော်လွန်ပါက ပထမဆုံး {max} ခုကိုသာ ပြသနေသည်။ ဟူသော မှတ်ချက်ကို ပြသပေးမည် ဖြစ်သည်။
အမှားပြင်ဆင်ခြင်းနှင့် အထူးအခြေအနေများ
စမ်းသပ်နေစဉ်အတွင်း အောက်ပါအခြေအနေများနှင့် ကြုံတွေ့ရပါက စနစ်မှ သတိပေးချက်များ ပြသပေးမည် ဖြစ်သည်။
- ကိုက်ညီမှုမရှိပါ။: ထည့်သွင်းထားသော စာသားထဲတွင် pattern နှင့် ကိုက်ညီသည့်အရာ မရှိပါက ဤစာသားကို ပြသမည် ဖြစ်သည်။
- မမှန်ကန်သော regular expression ဖြစ်သည်။: ရေးသားထားသော regular expression ၏ syntax တည်ဆောက်ပုံ မှားယွင်းနေပါက ဤအမှားပြင်ဆင်ချက်ကို ပြသမည် ဖြစ်သည်။
- ဤ pattern သည် လုပ်ဆောင်ရန် အချိန်ကြာမြင့်လွန်းနေပါသည် — ၎င်းသည် အလွန်နှေးကွေးသော pattern ဖြစ်နိုင်ပါသည်။ ရိုးရှင်းအောင် ပြန်လည်ပြင်ဆင်ပါ။: Pattern တစ်ခုကို လုပ်ဆောင်ရန် ၂ စက္ကန့်ထက် ပိုမိုကြာမြင့်နေပါက (catastrophic backtracking ကဲ့သို့သော စွမ်းဆောင်ရည်ကျဆင်းမှု ပြဿနာများကြောင့်) စမ်းသပ်မှုကို ရပ်ဆိုင်းပြီး ဤစာသားကို ပြသပေးမည် ဖြစ်သည်။
- ရှင်းလင်းရန် ခလုတ်ကို နှိပ်ပါက ထည့်သွင်းချက်များကို ဖျက်ထုတ်ပေးမည်ဖြစ်ပြီး ရှင်းလင်းပြီးပါပြီ။ ဟု ပြသမည် ဖြစ်သည်။
ကိုယ်ရေးအချက်အလက် လုံခြုံမှုနှင့် လုပ်ဆောင်ပုံစနစ်
ဤကိရိယာတွင် သင်ထည့်သွင်းလိုက်သော pattern များနှင့် စမ်းသပ်မည့် စာသားများအားလုံးကို သင့်စက်ရှိ ဝဘ်ဘရောက်ဇာထဲတွင်သာ တိုက်ရိုက်စမ်းသပ်စစ်ဆေးခြင်း ဖြစ်သည်။ မည်သည့်အချက်အလက်ကိုမျှ BroBroGo ဆာဗာသို့ တင်ပို့ခြင်း (upload) လုံးဝမရှိပါ။
မေးလေ့ရှိသော မေးခွန်းများ (FAQ)
မေး။ ကျွန်ုပ်၏ စာသားများကို ဤနေရာတွင် ထည့်သွင်းခြင်းက စိတ်ချရပါသလား။
ဖြေ။ ဟုတ်ကဲ့၊ စိတ်ချရပါတယ်။ ကိုက်ညီမှုစစ်ဆေးခြင်းအားလုံးသည် သင့်ဘရောက်ဇာထဲတွင်သာ အလုပ်လုပ်ပြီး BroBroGo ဆီသို့ မည်သည့်အရာမျှ မပို့ပါ။
မေး။ g/i/m/s flag များသည် အဘယ်အရာကို ဆိုလိုသနည်း။
ဖြေ။ g သည် ပထမဆုံးတစ်ခုတည်းတင်မကဘဲ ကိုက်ညီမှုအားလုံးကို ရှာဖွေပေးသည်။ i သည် စာလုံးအကြီးအသေးကို လျစ်လျူရှုသည်။ m သည် ^ နှင့် $ တို့ကို စာသားတစ်ခုလုံးအစား စာကြောင်းတစ်ကြောင်းချင်းစီ၏ အစနှင့် အဆုံးအဖြစ် သတ်မှတ်ပေးသည်။ s သည်. ကို စာကြောင်းအသစ်ကူးခြင်းများနှင့်လည်း ကိုက်ညီစေသည်။
မေး။ ကျွန်ုပ်၏ pattern သည် အဘယ်ကြောင့် အချိန်ကြာမြင့်လွန်းနေသည်ဟု ပြသသနည်း။
ဖြေ။ အချို့သော pattern များသည် catastrophic backtracking ကို ဖြစ်ပေါ်စေပြီး ဘရောက်ဇာကို ရပ်တန့်သွားစေနိုင်ပါသည်။ ဤကိရိယာသည် ထိုသို့ဖြစ်ပါက ၂ စက္ကန့်အကြာတွင် ရပ်တန့်ပေးသောကြောင့် စာမျက်နှာတစ်ခုလုံး ရပ်တန့်သွားခြင်းမရှိပါ။ (a+)+ ကဲ့သို့သော ထပ်ခါတလဲလဲ pattern များကို ရိုးရှင်းအောင် ပြုပြင်ပါ။