ဤ C# Regex သင်ခန်းစာတွင် C# တွင် ပုံမှန်အသုံးအနှုန်း၊ ၎င်း၏ အထားအသို၊ Regex အတန်းအစား နည်းလမ်းများနှင့် ဥပမာများအကူအညီဖြင့် ဤနည်းလမ်းများကို အသုံးပြုနည်းကို ရှင်းပြသည်-
ပုံမှန်အသုံးအနှုန်း C# တွင် သီးခြားဇာတ်ကောင်ပုံစံနှင့် ကိုက်ညီရန် အသုံးပြုသည်။ အသုံးပြုသူတစ်ဦးသည် ထပ်ခါတလဲလဲပုံစံအချို့ကိုရှာဖွေရန် သို့မဟုတ် ဒေတာအတည်ပြုမှုပြုလုပ်ရန် သို့မဟုတ် ဒေတာဖော်မတ်စစ်ဆေးခြင်းအတွက်ပင် လိုအပ်သည့်အခါတိုင်း ပုံမှန်အသုံးအနှုန်းများကို အသုံးပြုပါသည်။
စာကြောင်းတစ်ခုတွင် ပေးထားသောစာလုံးပုံစံနှင့် ကိုက်ညီမှုရှိမရှိရှာဖွေရန် RegEx ကို အသုံးပြုပါသည်။ regex သည် အဓိကအားဖြင့် ပုံစံတစ်ခုအား ရည်ညွှန်းသည့် အက္ခရာအစီအစဥ်တစ်ခုဖြစ်သည်။
ပုံစံတစ်ခုသည် နံပါတ်များ၊ အက္ခရာများ သို့မဟုတ် အားလုံးပေါင်းစပ်မှုမှ မည်သည့်အရာမဆို ဖြစ်နိုင်သည်။ Regex ကို အတည်ပြုရန်အတွက် တွင်ကျယ်စွာ အသုံးပြုပါသည်။ ခွဲခြမ်းစိတ်ဖြာခြင်း သို့မဟုတ် ကိုက်ညီသောစာကြောင်းများ၊ ဥပမာ ၊ စာကြောင်းတစ်ခုသည် ငွေကြေးဖော်မတ်၊ ဖုန်းနံပါတ် သို့မဟုတ် ရက်စွဲပုံစံနှင့် ကိုက်ညီမှုရှိမရှိ ရှာဖွေခြင်း။
Regex အတန်းအစား C#
Regex အတန်းအစား regex လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် C# တွင် အသုံးပြုသည်။ ၎င်းတွင် regex နှင့် ပတ်သက်သည့် မတူညီသော လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် အသုံးပြုနိုင်သည့် မတူညီသော နည်းလမ်းများစွာ ပါရှိသည်။
၎င်းကို တူညီသော လုပ်ဆောင်ရန် အသုံးပြုနိုင်သည့် နည်းလမ်းများကို အသုံးပြု၍ သီးခြား စာလုံးအစီအစဥ်ကို ရှာဖွေရန် ၎င်းကို ကြီးမားသော စာသားများကို ပိုင်းခြားရန် အသုံးပြုနိုင်သည်။ ဇာတ်ကောင်အစီအစဥ်ကို ခွဲခြမ်းရန် သို့မဟုတ် အစားထိုးရန် အသုံးပြုနိုင်သည်။
regex အတန်းသည် namespace အတွင်းတွင် ရှိနေပါသည်။ System.Text.RegularExpression အတန်းသည် ကန့်သတ်မှုတစ်ခုအဖြစ် ဇာတ်ကောင်အစီအစဥ်ပုံစံ string တစ်ခုကို လက်ခံသည်။
C# Regex Methods
ကျွန်ုပ်တို့ဖန်တီးထားသည့် “^Super” သည် စူပါ၊ စူပါမင်း သို့မဟုတ် သဘာဝလွန် သဘာဝလွန်တို့၏ တန်ဖိုးများအားလုံးနှင့် ကိုက်ညီနိုင်သော်လည်း ကျွန်ုပ်တို့သည် “စူပါ” ဟူသော စကားလုံးကို မလိုချင်ပါ။
၎င်းသည် စကားလုံး၏နောက်တွင် နေရာလွတ်ရှိသင့်သည်ဟု ဆိုလိုသည်။ စကားလုံး၏အဆုံးနှင့် အခြားစကားလုံး၏အစကို အမှတ်အသားပြုပါ။ ထိုသို့လုပ်ဆောင်ရန် ကျွန်ုပ်တို့သည် ပုံစံတွင် သင်္ကေတ “\s” ကို ပေါင်းထည့်မည်ဖြစ်ပြီး ထို့ကြောင့် ကျွန်ုပ်တို့၏ နောက်ဆုံးပုံစံကို
^Super\s
Scenario 3- မှန်ကန်သော ဖိုင်ကိုရှာဖွေရန် ပုံမှန်ဖော်ပြချက်ကို အသုံးပြုပါ။ ပုံဖိုင်အမျိုးအစား တိုးချဲ့မှုတစ်ခုပါရှိသော အမည်များ။
ဆော့ဖ်ဝဲရေးသားသူများ မကြာခဏကြုံတွေ့ရလေ့ရှိသည့် နောက်ထပ်အရေးကြီးသော အချိန်နှင့်တစ်ပြေးညီ ဇာတ်လမ်းမှာ ဖိုင်အမျိုးအစားများ၏ တရားဝင်မှုဖြစ်သည်။ ကျွန်ုပ်တို့တွင် ပုံဖိုင်အမျိုးအစား တိုးချဲ့မှုများကိုသာ လက်ခံနိုင်သည့် UI တွင် အပ်လုဒ်ခလုတ်တစ်ခု ရှိသည်ဟု ဆိုကြပါစို့။
အသုံးပြုသူ အပ်လုဒ်ဖိုင်ကို အတည်ပြုပြီး ဖိုင်ဖော်မတ်မှားပါက အပ်လုဒ်လုပ်ပါက သူ့ကို အကြောင်းကြားရန် လိုအပ်ပါသည်။ ပုံမှန်အသုံးအနှုန်းကို အသုံးပြုခြင်းဖြင့် ၎င်းကို အလွယ်တကူ ရရှိနိုင်သည်။
အောက်တွင် ဖော်ပြထားသည်မှာ ၎င်းကို စစ်ဆေးရန် ရိုးရှင်းသော ပရိုဂရမ်တစ်ခုဖြစ်သည်။
public static void Main(string[] args) gif)$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("abc.jpg")); Console.WriteLine(reg.IsMatch("ab_c.gif")); Console.WriteLine(reg.IsMatch("abc123.png")); //When pattern doesnt match Console.WriteLine(reg.IsMatch(".jpg")); Console.WriteLine(reg.IsMatch("ask.jpegj"));
Output
True
True
True
False
False
ရှင်းလင်းချက်
ဤနေရာတွင် ကျွန်ုပ်တို့သည် တစ်ခုနှင့် တူညီရန် လိုအပ်ပါသည်။ ဖိုင်နာမည်။ မှန်ကန်သောဖိုင်အမည်ကို အပိုင်းသုံးပိုင်း ( ဖိုင်အမည် + . + ဖိုင်တိုးချဲ့မှု ) ဖြင့် ဖွဲ့စည်းထားသည်။ အပိုင်းသုံးပိုင်းစလုံးနှင့် ကိုက်ညီရန် ပုံမှန်အသုံးအနှုန်းတစ်ခု ဖန်တီးရန် လိုအပ်သည်။ ပထမအပိုင်းဖြစ်တဲ့ ဖိုင်နာမည်နဲ့ တွဲပြီး စလိုက်ရအောင်။ ဖိုင်အမည်တွင် အက္ခရာဂဏန်းနှင့် အထူးအက္ခရာများ ပါဝင်နိုင်သည်။
အစောပိုင်းတွင် ဆွေးနွေးထားသည့်အတိုင်း ၎င်းကိုဖော်ပြရန် သင်္ကေတသည် “\w” ဖြစ်သည်။ ထို့အပြင်၊ ဖိုင်အမည်သည် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုနိုင်သည်။ထို့နောက်တွင် အစက် (.) ဖြင့်၊ ထို့နောက် အစက် (.) ပြီးနောက် ဝဘ်ဆိုက်၏ အမည်နှင့် အဆုံးတွင် ဒိုမိန်း တိုးချဲ့မှုတစ်ခု။
ထို့ကြောင့် ယခင်အခြေအနေနှင့် ဆင်တူသည်၊ ၎င်းကို တစ်ပိုင်းပြီးတစ်ပိုင်း ကိုက်ညီအောင် ကြိုးစားပါမည်။ . “www” ကို ယှဉ်ပြီး စလိုက်ကြရအောင်။ အပိုင်း။ ထို့ကြောင့် ကျွန်ုပ်တို့သည် စတင်သည့် သင်္ကေတဖြင့် စတင်သည်၊ ထို့နောက် “www” အဖြစ် စတင်သည်။ ၎င်းသည် ပြုပြင်ထားသည့်အရာဖြစ်သောကြောင့် ကျွန်ုပ်တို့သည် အတိအကျကိုက်ညီရန် စကားလုံးများဖြင့် နောက်မှအစသင်္ကေတကို အသုံးပြုပါသည်။
“^www.”
ထို့နောက် ဒုတိယအပိုင်းကို စတင်လုပ်ဆောင်ပါမည်။ ဝဘ်လိပ်စာ၏ ဒုတိယအပိုင်းသည် အက္ခရာဂဏန်းအမည်များ ဖြစ်နိုင်သည်။ ထို့ကြောင့်၊ ဤနေရာတွင် တူညီရန်လိုအပ်သည့် အပိုင်းအခြားကို သတ်မှတ်ရန် ဇာတ်ကောင်အတန်းတွင် ပါရှိသည့် စတုရန်းကွင်းစကွက်များကို အသုံးပြုပါမည်။ ဒုတိယအပိုင်းနှင့် ဒုတိယအပိုင်းကို ပေါင်းထည့်ပြီးနောက် ကျွန်ုပ်တို့အား ပေးပါမည်။
“^www.[a-zA-Z0-9]{3,20}”
ဝဘ်ဆိုဒ်အမည်အတွက် အနိမ့်ဆုံးနှင့် အမြင့်ဆုံးစာလုံးအရှည်ကို သတ်မှတ်ရန် ဤနေရာတွင် ကျွန်ုပ်တို့တွင် အကောက်ကောက်များကို ထပ်ထည့်ထားပါသည်။ ကျွန်ုပ်တို့သည် အနည်းဆုံး 3 ခုနှင့် အများဆုံး 20 ကို ပေးထားပါသည်။ သင်အလိုရှိသော အနည်းဆုံး သို့မဟုတ် အများဆုံး အရှည်ကို ပေးနိုင်ပါသည်။
ယခု ဝဘ်လိပ်စာ၏ ပထမနှင့် ဒုတိယအပိုင်းများကို ဖုံးအုပ်ထားပြီး၊ နောက်ဆုံးတစ်ခုသာ ကျန်တော့သည် အပိုင်း၊ ဆိုလိုသည်မှာ ဒိုမိန်း တိုးချဲ့မှု။ ၎င်းသည် နောက်ဆုံးအခြေအနေတွင် ကျွန်ုပ်တို့ပြုလုပ်ခဲ့သည့်အရာနှင့် အတော်လေးဆင်တူပါသည်၊ OR ကိုအသုံးပြုကာ စက်ဝိုင်းကွင်းအတွင်းတွင် တရားဝင်ဒိုမိန်းတိုးချဲ့မှုတိုင်းကို ထည့်သွင်းခြင်းဖြင့် ကျွန်ုပ်တို့သည် ဒိုမိန်းတိုးချဲ့မှုများနှင့် တိုက်ရိုက်ကိုက်ညီပါမည်။
ထို့ကြောင့် ၎င်းတို့အားလုံးကို ပေါင်းထည့်ပါက ကျွန်ုပ်တို့ရရှိမည်ဖြစ်သည်။ တရားဝင်ဝဘ်လိပ်စာနှင့် ကိုက်ညီရန် ပြီးပြည့်စုံသော ပုံမှန်အသုံးအနှုန်းတစ်ခု။
www.[a-zA-Z0-9]{3,20}.(com|in|org|co\.in|net|dev)$
Scenario 5- မှန်ကန်ကြောင်း အတည်ပြုရန် ပုံမှန်ဖော်ပြချက်ကို အသုံးပြုပါ။အီးမေးလ် id ဖော်မတ်
အသုံးပြုသူများအား ၎င်းတို့၏ အီးမေးလ်လိပ်စာကို ထည့်သွင်းရန် တောင်းဆိုသည့် ကျွန်ုပ်တို့၏ ဝဘ်စာမျက်နှာပေါ်တွင် အကောင့်ဝင်ပုံစံတစ်ခု ရှိသည်ဟု ယူဆကြပါစို့။ သိသာထင်ရှားသောအကြောင်းပြချက်များအတွက်၊ ကျွန်ုပ်တို့၏ပုံစံအား မမှန်ကန်သော အီးမေးလ်လိပ်စာများဖြင့် ဆက်လက်လုပ်ဆောင်စေလိုမည်မဟုတ်ပါ။ အသုံးပြုသူမှ ထည့်သွင်းထားသော အီးမေးလ်လိပ်စာသည် မှန်ကန်သည်ဖြစ်စေ မမှန်ကန်ကြောင်း စစ်ဆေးရန် ကျွန်ုပ်တို့သည် ပုံမှန်အသုံးအနှုန်းကို အသုံးပြုနိုင်ပါသည်။
အောက်တွင်ဖော်ပြထားသော အီးမေးလ်လိပ်စာတစ်ခုအား အတည်ပြုရန် ရိုးရှင်းသောပရိုဂရမ်တစ်ခုဖြစ်သည်။
public static void Main(string[] args) { string patternText = @"^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}.(com|org|co\.in|net)"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("[email protected]")); Console.WriteLine(reg.IsMatch("[email protected]")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("[email protected]")); }
Output
True
True
False
ရှင်းလင်းချက်
A တရားဝင်အီးမေးလ်လိပ်စာတွင် အက္ခရာများ၊ ဂဏန်းများနှင့် အစက် (.)၊ dash (-) နှင့် အောက်ခံများ (_) ကဲ့သို့သော အထူးအက္ခရာများပါရှိပြီး ၎င်းနောက်တွင် ဒိုမိန်းအမည်နှင့် ဒိုမိန်းတိုးချဲ့မှုဖြင့် နောက်တွင်ရှိသော “@” သင်္ကေတဖြင့် နောက်တွင်ပါရှိသည်။
ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် အီးမေးလ်လိပ်စာကို အပိုင်းလေးပိုင်းအဖြစ် ပိုင်းခြားနိုင်ပါသည် ဥပမာအားဖြင့် အီးမေးလ်အမှတ်အသား၊ “@” သင်္ကေတ၊ ဒိုမိန်းအမည် နှင့် နောက်ဆုံးတစ်ခုသည် ဒိုမိန်းတိုးချဲ့မှုဖြစ်သည်။
အတွက် ပုံမှန်အသုံးအနှုန်းတစ်ခုကို ရေးသားခြင်းဖြင့် စတင်ကြပါစို့။ ပထမပိုင်း အချို့သော အထူးအက္ခရာများဖြင့် ၎င်းသည် အယ်လ်ဖ-ဂဏန်းများ ဖြစ်နိုင်သည်။ ကျွန်ုပ်တို့တွင် အက္ခရာ 5 လုံးမှ 25 လုံးအထိ ဖော်ပြနိုင်သော အရွယ်အစားရှိနေသည်ဟု ယူဆပါ။ အစောပိုင်းက ကျွန်ုပ်တို့ရေးသားပုံနှင့်ဆင်တူသည် (အီးမေးလ်အခြေအနေတွင်)၊ ကျွန်ုပ်တို့သည် အောက်ပါအချက်များကို ဖော်ပြနိုင်ပါသည်။
^[a-zA-Z0-9\._-]{5,25}
ယခု၊ ဒုတိယအပိုင်းသို့ ရွှေ့ပါ။ “@” သင်္ကေတတစ်ခုသာ ယှဉ်ရန် လိုအပ်သောကြောင့် နှိုင်းယှဉ်ရလွယ်ကူပါသည်။ ၎င်းကို အထက်ဖော်ပြပါ စကားရပ်တွင် ထည့်ခြင်းဖြင့် ကျွန်ုပ်တို့အား ပေးစွမ်းပါသည်။
^[a-zA-Z0-9\._-]{5,25}.@
တတိယအပိုင်းသို့ ရွှေ့ခြင်း ၊ ဆိုလိုသည်မှာ ဒိုမိန်းအမည်သည် အမြဲတမ်း အောက်တန်းကျနေပါမည်။ကိုက်ညီသော စကားလုံးများ၊ အက္ခရာများ၊ ဝဘ်ဆိုဒ်လိပ်စာများ၊ အီးမေးလ်အိုင်ဒီများနှင့် ဖိုင်အမျိုးအစားများနှင့် တိုးချဲ့မှုများပင်။
ဤအခြေအနေများသည် ကုဒ်စာကြောင်းများစွာကို မရေးဘဲ သုံးစွဲသူ၏ထည့်သွင်းမှုများကို အချိန်နှင့်တစ်ပြေးညီ အတည်ပြုရာတွင် အလွန်အသုံးဝင်ပြီး အချိန်ကုန်သက်သာစေရန် ကူညီပေးပါသည်။ ရှုပ်ထွေးမှုကိုလျှော့ချ။ ဤနမူနာများသည် အသုံးပြုသူများအား ၎င်းတို့၏ကိုယ်ပိုင်ပုံမှန်အသုံးအနှုန်းအစုအဝေးကိုဖန်တီးရန် လမ်းညွှန်ရန်အသုံးပြုထားပြီး အခြားကွဲပြားသောအခြေအနေများစွာကို ကိုင်တွယ်ရာတွင် ကူညီပေးပါသည်။
Regex သည် ပေးထားသောစီးရီးတစ်ခုနှင့်ကိုက်ညီရန် အက္ခရာ သို့မဟုတ် ဂဏန်းများကိုအသုံးပြုခြင်းကဲ့သို့ရိုးရှင်းနိုင်သည်။ ရှုပ်ထွေးသောဖော်မတ်များကို တရားဝင်စစ်ဆေးရန် သို့မဟုတ် ဇာတ်ကောင်စီးရီးရှိ သီးခြားပုံစံတစ်ခုကို ရှာဖွေရန် အထူးဇာတ်ကောင်များ၊ အရေအတွက်၊ ဇာတ်ကောင်အတန်းအစားများ စသည်တို့ကို ပေါင်းစပ်အသုံးပြုခြင်းဖြင့် ဇာတ်ကောင်များ သို့မဟုတ် ရှုပ်ထွေးမှုများ။
အတိုချုပ်အားဖြင့်၊ ပုံမှန်အသုံးအနှုန်းသည် အတော်လေးကို ပရိုဂရမ်မာတစ်ဦးအတွက် အစွမ်းထက်သည့်ကိရိယာဖြစ်ပြီး ဒေတာကိုက်ညီမှု သို့မဟုတ် တရားဝင်မှုလုပ်ငန်းတစ်ခုတွင် ပြီးမြောက်ရန် လိုအပ်သည့်ကုဒ်ပမာဏကို လျှော့ချရာတွင် ကူညီပေးသည်။
IsMatchRegex အတန်းတွင် အရိုးရှင်းဆုံးနှင့် အသုံးဝင်ဆုံးနည်းလမ်းမှာ IsMatch နည်းလမ်းဖြစ်သည်။ ဤနည်းလမ်းတွင် မတူညီသော ကန့်သတ်ဘောင်များအလိုက် စာလုံးများကို ကိုက်ညီအောင်လုပ်ဆောင်ခြင်းအတွက် မတူညီသော overload များရှိသည်။
အရိုးရှင်းဆုံးမှာ
Replace(String text၊ String replacementText)
အစားထိုးနည်းလမ်းသည် နှစ်ခုကို လက်ခံပါသည်။ ကန့်သတ်ချက်များ နှင့် စာကြောင်းတန်ဖိုးကို ပြန်ပေးသည်။ ပထမကန့်သတ်ချက်သည် ကိုက်ညီမှုအတွက် သင်အသုံးပြုလိုသော စာလုံးအစီအစဥ် သို့မဟုတ် regex ဖြစ်ပြီး ဒုတိယတစ်ခုသည် regex ၏ အစားထိုးမှုဖြစ်သည်။
နည်းလမ်းသည် ပေးထားသောစာသား၏ကိုက်ညီမှုကိုရှာဖွေပြီး ၎င်းနှင့်အစားထိုးခြင်းဖြင့် လုပ်ဆောင်သည်။ အသုံးပြုသူမှပေးသော အစားထိုးစာသား။ နည်းလမ်း၏ လက်မှတ်သည် အများပြည်သူသုံးစာကြောင်း အစားထိုးခြင်း(စာကြောင်း စာသား၊ စာတန်းအစားထိုးစာသား)
အများသူငှာ ကြိုးစာ[] ခွဲခြမ်း(စာကြောင်း စာသား)
ခွဲခြမ်းနည်း regex class မှ string input ကို parameter အဖြစ် လက်ခံပြီး substrings များပါရှိသော array ကို return ပြန်သည် ။ နည်းလမ်းတွင် ဖြတ်သွားသော ကန့်သတ်ချက်သည် ခွဲခြမ်းရန် လိုအပ်သော စာကြောင်းဖြစ်သည်။
နည်းလမ်းသည် စာကြောင်းအတွင်း ကိုက်ညီသည့် ထည့်သွင်းမှုပုံစံကို ရှာဖွေပြီး ကိုက်ညီသည့်ပုံစံကို ဖော်ထုတ်လိုက်သည်နှင့် ၎င်းသည် ထိုနေရာရှိ စာကြောင်းကို သေးငယ်သောစာကြောင်းခွဲအဖြစ် ပိုင်းခြားပေးသည်။ ကိုက်ညီသောပုံစံတစ်ခုစီသည် breaking point ဖြစ်သည်။ ထို့နောက် method သည် substrings များအားလုံးကို ပါဝင်သော array တစ်ခုကို ပြန်ပေးသည်။
Regex C# Methods ၏အသုံးပြုမှု
ရိုးရှင်းသောပရိုဂရမ်တစ်ခုရေးသားခြင်းဖြင့် ဤနည်းလမ်းများ၏အသုံးပြုမှုကို လေ့လာကြည့်ကြပါစို့။
public static void Main(string[] args) { string patternText = "Hello"; Regex reg = new Regex(patternText); //IsMatch(string input) Console.WriteLine(reg.IsMatch("Hello World")); //IsMatch(string input, int index) Console.WriteLine(reg.IsMatch("Hello", 0)); //IsMatch(string input, string pattern) Console.WriteLine(Regex.IsMatch("Hello World", patternText)); //Replace(string input, string replacement) Console.WriteLine(reg.Replace("Hello World", "Replace")); //Split(string input, string pattern) string[] arr = Regex.Split("Hello_World_Today", "_"); foreach(string subStr in arr) { Console.WriteLine("{0}", subStr); } }
အထက်ပါ ရလဒ်program
True
True
True
Replace World
Hello
World
ယနေ့
အထက်ဖော်ပြပါ ကုဒ်အတွက် ရှင်းလင်းချက်-
ပရိုဂရမ်အစတွင်၊ ကျွန်ုပ်တို့ အသုံးပြုမည့် ပုံစံအတွက် အရာဝတ္ထုတစ်ခုကို ဖန်တီးခဲ့ပြီး၊ နောက်ဆက်တွဲ စာကြောင်းထည့်သွင်းမှုတွင် ကိုက်ညီသောကုဒ်အတွက်၊ အစပိုင်းတွင် အရာများကို ရိုးရှင်းနေစေရန် ကျွန်ုပ်တို့သည် စာသားဖော်မတ်ကို အသုံးပြုထားသော်လည်း သင်အဆင်ပြေပါက ပုံမှန်ဖော်ပြမှုပုံစံများကို စတင်အသုံးပြုနိုင်ပါသည်။ (ကျွန်ုပ်တို့သည် ဤသင်ခန်းစာတွင် ရှေ့သို့ဆက်သွားသည့်အခါ ပုံမှန်ဖော်ပြမှုပုံစံကို အသေးစိတ်ဆွေးနွေးပါမည်။)
ထို့နောက်၊ ကျွန်ုပ်တို့သတ်မှတ်ထားသော အရာဝတ္ထုအဖြစ် ထည့်သွင်းထားသောစာကြောင်းနှင့် ကိုက်ညီမှုရှိမရှိကို ထည့်သွင်းရန် match string ကို အသုံးပြုပါမည်။ ထို့နောက် false ကို return ပြန်သွားပါမည်။
ကျွန်ုပ်တို့အသုံးပြုသည့် နောက်နည်းလမ်းမှာ IsMethod(string input၊ int index) ဖြစ်သည်။ ဤနည်းလမ်းသည် ပါရာမီတာ နှစ်ခုကို လက်ခံသည်၊ ဤနေရာတွင် ကျွန်ုပ်တို့သည် ထည့်သွင်းမှုစာကြောင်းနှင့် ကိုက်ညီမှုစတင်ရမည့်နေရာမှ အညွှန်းကို ပေးပါသည်။ ဥပမာ၊ ဤနေရာတွင် ကျွန်ုပ်တို့သည် ထည့်သွင်းသည့်စာကြောင်း၏အစမှ ကိုက်ညီမှုကို စတင်လိုပါသည်။
ထို့နောက် IsMatch(string input၊ string ပုံစံ) ကိုအသုံးပြုမှုကို သရုပ်ပြခဲ့သည်။ ဤနေရာတွင် ကျွန်ုပ်တို့သည် input string ကို ပေးထားပြီး၊ ထို့နောက် ပုံစံစာသားသည် input တွင် ရှိနေခြင်း ရှိ၊ မရှိ ရှာဖွေလိုပါသည်။ အကယ်၍ ၎င်း၏ရှိနေပါကလည်း အမှန် (ကျွန်ုပ်တို့၏ကိစ္စတွင်ကဲ့သို့) မဟုတ်ပါက ၎င်းသည် false သို့ပြန်သွားပါမည်။
ကျွန်ုပ်တို့ ဆွေးနွေးထားသော အခြားနည်းလမ်းကို အစားထိုးထားပါသည်။ ဤနည်းလမ်းသည် သင်ထည့်သွင်းသည့်ဒေတာကို အပြောင်းအလဲပြုလုပ်လိုသည့် ပရိုဂရမ်များတွင် အတော်လေးအသုံးဝင်သည်။သို့မဟုတ် ရှိပြီးသားဒေတာ၏ဖော်မတ်ကို ပြောင်းလဲပါ။
ဤနေရာတွင် ကျွန်ုပ်တို့သည် ကန့်သတ်ချက်နှစ်ခုကို ပေးဆောင်သည်၊ ပထမတစ်ခုသည် ထည့်သွင်းစာကြောင်းဖြစ်ပြီး ဒုတိယတစ်ခုသည် ယခင်စာကြောင်းကို အစားထိုးရန်အတွက် အသုံးပြုနိုင်သည့် စာကြောင်းဖြစ်သည်။ ဤနည်းလမ်းသည် အစောပိုင်းတွင် ကျွန်ုပ်တို့သတ်မှတ်ထားသည့် regex အရာဝတ္တုတွင် သတ်မှတ်ထားသည့်ပုံစံကိုလည်း အသုံးပြုပါသည်။
ကျွန်ုပ်တို့အသုံးပြုခဲ့သည့် နောက်ထပ်အရေးကြီးသောနည်းလမ်းကို ခွဲထားသည်။ ထပ်တလဲလဲ ပုံစံအချို့အပေါ် အခြေခံ၍ ပေးထားသော စာကြောင်းကို ခွဲရန် ဤနည်းလမ်းကို အသုံးပြုသည်။ ဤတွင်၊ ကျွန်ုပ်တို့သည် “Hello_World_Today” စာကြောင်းတစ်ကြောင်းကို ပေးထားပါသည်။
ပေးထားသောစာကြောင်းမှ အောက်အမှတ်များကို ဖယ်ရှားပြီး စာကြောင်းခွဲများကို ရယူလိုသည်ဆိုပါစို့။ ၎င်းအတွက်၊ ကျွန်ုပ်တို့သည် input parameter ကိုသတ်မှတ်ပြီးနောက် ပိုင်းခြားမှတ်အဖြစ်အသုံးပြုရန်လိုအပ်သည့်ပုံစံကိုပေးပါသည်။ နည်းလမ်းသည် array တစ်ခုအား ပြန်ပို့ပေးပြီး strings အားလုံးကို ပြန်လည်ရယူရန် foreach ကဲ့သို့ ရိုးရှင်းသော loop ကို အသုံးပြုနိုင်ပါသည်။
Regular Expression Syntax
အထူးအက္ခရာများ၊ ပမာဏသတ်မှတ်မှုများ၊ ဇာတ်ကောင်အမျိုးအစားများကဲ့သို့ မတူညီသော syntax အများအပြားရှိပါသည်။ ပေးထားသည့် ထည့်သွင်းမှုတစ်ခုမှ အချို့သောပုံစံနှင့် ကိုက်ညီရန် အသုံးပြုနိုင်သည်။
သင်ခန်းစာ၏ ဤအပိုင်းတွင်၊ ကျွန်ုပ်တို့သည် regex မှပေးဆောင်သော syntax ထဲသို့ နက်နက်နဲနဲ နစ်မြှုပ်နေပြီး လက်တွေ့ဘဝအခြေအနေအချို့ကို ဖြေရှင်းရန် ကြိုးစားပါမည်။ သူတို့ကို အသုံးပြု. ကျွန်ုပ်တို့ရှေ့မဆက်မီ၊ သင်သည် regex ၏ အခြေခံအယူအဆနှင့် regex အတန်းအတွင်း ရရှိနိုင်သော မတူညီသောနည်းလမ်းများကို ရရှိထားကြောင်း သေချာပါစေ။
အထူးဇာတ်ကောင်များ
အဓိပ္ပါယ်များစွာကို သတ်မှတ်ပေးရန်အတွက် regex ရှိ အထူးဇာတ်ကောင်များကို အသုံးပြုပါသည်။ ပုံစံတစ်ခုသို့။ အခုပဲ ကြည့်ပါမယ်။Regex.3 တွင် အသုံးများသော အထူးအက္ခရာများနှင့် ၎င်းတို့၏ အဓိပ္ပါယ်အချို့
အထူးအက္ခရာများ | အဓိပ္ပါယ် |
---|---|
^ | ၎င်းသည် အသုံးအများဆုံး syntax တစ်ခုဖြစ်သည်။ ၎င်းသည် စတင်ခြင်းအား ရည်ညွှန်းသည်၊ ၎င်းနောက်မှ စကားလုံး သို့မဟုတ် ပုံစံသည် ထည့်သွင်းသည့်စာသား၏အစမှ စတင်ကိုက်ညီပါသည်။ |
$ | အဆုံးမှ ကိုက်ညီသောစကားလုံးများအတွက် ဤသင်္ကေတကို အသုံးပြုပါသည်။ string ကို။ ဤသင်္ကေတရှေ့တွင် ဖော်ပြထားသော စကားလုံးများ/ပုံစံများသည် string ၏အဆုံးတွင်ရှိသောစကားလုံးများနှင့် ကိုက်ညီမည်ဖြစ်သည်။ |
။ (dot) | Dot သည် တစ်ကြိမ်ဖြစ်ပေါ်နေသည့် စာကြောင်းတစ်ကြောင်းတည်းရှိ စာလုံးတစ်လုံးနှင့် ကိုက်ညီရန်အတွက် အသုံးပြုပါသည်။ |
\n | ၎င်းကို အသစ်တစ်ခုအတွက် အသုံးပြုပါသည်။ စာကြောင်း။ |
\d နှင့် \D | စာလုံးအသေး 'd' ကို ဂဏန်းအက္ခရာနှင့် ကိုက်ညီရန် အသုံးပြုပြီး စာလုံးကြီး 'D' ကို ဂဏန်းမဟုတ်သော ကိုက်ညီစေရန် အသုံးပြုသည် စာလုံးများ။ |
\s နှင့် \S | စာလုံးသေး 's' ကို အဖြူကွက်လပ်များနှင့် ကိုက်ညီရန် အသုံးပြုပြီး အဖြူမဟုတ်သောနေရာနှင့် စာလုံးအကြီး 'S' ကို အဖြူမဟုတ်သည့်နေရာနှင့် ကိုက်ညီစေရန် အသုံးပြုသည် . |
\w နှင့် \W | စာလုံးအသေး 'w' ကို အက္ခရာဂဏန်း ဂဏန်း/အောက်အမှတ် အက္ခရာများနှင့် ကိုက်ညီရန် အသုံးပြုပြီး စာလုံးကြီးမဟုတ်သော 'W' ကို စာလုံးအကြီးနှင့် ကိုက်ညီရန် အသုံးပြုသည် စာလုံးများ။ |
Quantifier Syntax
Quantifier Syntax ကို ကိုက်ညီသော စံနှုန်းများကို ရေတွက်ရန် သို့မဟုတ် အရေအတွက်သတ်မှတ်ရန်အတွက် အသုံးပြုပါသည်။ ဥပမာ၊ အကယ်၍ သင်သည် သီးခြားစာကြောင်းတစ်ခုတွင် တစ်ကြိမ် သို့မဟုတ် ထို့ထက်ပိုသော အက္ခရာပါရှိမရှိ စစ်ဆေးလိုပါက။ Regular expression တွင် အသုံးများသော quantifier အချို့ကို ကြည့်ကြပါစို့။
QuantifierSyntax | အဓိပ္ပာယ် |
---|---|
* | ဤသင်္ကေတကို ရှေ့အက္ခရာနှင့် ကိုက်ညီရန် အသုံးပြုပါသည်။ |
+ | ဤသင်္ကေတကို အတန်းတစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အက္ခရာများနှင့် ကိုက်ညီရန် အသုံးပြုပါသည်။ |
{n} | အကောက်အတွင်းရှိ ဂဏန်းဂဏန်းများ braces များကို curly braces အတွင်းရှိ ဂဏန်းများဖြင့် သတ်မှတ်ထားသော ရှေ့အက္ခရာများ၏ အရေအတွက်နှင့် ကိုက်ညီရန် အသုံးပြုပါသည်။ |
{n,} | အကောက်ကောက်များအတွင်းမှ ဂဏန်းများနှင့် ဤသင်္ကေတကို အသုံးပြုထားသည်။ ၎င်းသည် အနည်းဆုံး n (ဆိုလိုသည်မှာ ညှပ်များအတွင်း ကိန်းဂဏန်းတန်ဖိုး) နှင့် ကိုက်ညီကြောင်း သေချာစေရန်။ |
{n, m} | ဤသင်္ကေတကို ရှေ့အက္ခရာမှ ယှဉ်တွဲရန်အတွက် အသုံးပြုပါသည်။ n အကြိမ်အရေအတွက်မှ m အကြိမ်အရေအတွက်။ |
? | ဤသင်္ကေတသည် ရှေ့စာလုံးများကို စိတ်ကြိုက်ရွေးချယ်နိုင်စေပါသည်။ |
Character Class
ဇာတ်ကောင်အတန်းအစားကို အက္ခရာအစုံများဟုလည်း ခေါ်ကြပြီး၊ ၎င်းကို ဇာတ်ကောင်များစွာထဲမှ တစ်ခုတည်းကိုက်ညီမှုရှာရန် regex အင်ဂျင်အား ပြောရန်အတွက် ၎င်းကို အသုံးပြုသည်။ ဇာတ်ကောင်အတန်းအစားသည် စာလုံးတစ်လုံးတည်းသာ တူညီမည်ဖြစ်ပြီး ဇာတ်ကောင်အစုအတွင်း ထည့်သွင်းထားသော ဇာတ်ကောင်များ၏ အစီအမံသည် အရေးမကြီးပါ။
ဇာတ်ကောင်အမျိုးအစား | အဓိပ္ပာယ် |
---|---|
[ အပိုင်းအခြား ] | စတုရန်းကွင်းပိတ်သင်္ကေတကို စာလုံးအကွာအဝေးအတွက် ကိုက်ညီရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်၊ အက္ခရာ “a” မှ “z” မှ အကွာအဝေးအတွင်းရှိ မည်သည့်အက္ခရာကိုမဆို [a-z] ကဲ့သို့ ကွင်းကွင်းအတွင်း၌ အပိုင်းအခြားကို ထည့်သွင်းခြင်းဖြင့် ကျွန်ုပ်တို့သည် ၎င်းကို အသုံးပြု၍ သို့မဟုတ် ဂဏန်း “1” မှ “” နှင့်လည်း တွဲနိုင်သည် 9” ကို ရည်ညွှန်းသည်။အချို့သော အချိန်နှင့်တပြေးညီ ဥပမာများကို အသုံးပြုထားသော အသုံးအနှုန်းများ။ Scenario 1- ထည့်သွင်းသည့်စာကြောင်းတွင် ဂဏန်း ၆ လုံးပါ စာလုံးအကြီးအသေး-အာရုံမခံသော အက္ခရာစာလုံးများဖြင့် ဖွဲ့စည်းထားခြင်းရှိမရှိ စစ်ဆေးပါ။ ပုံမှန်အသုံးအနှုန်းအတွက် အသုံးအများဆုံးအခြေအနေမှာ ပေးထားသော စကားလုံးကို ရှာဖွေခြင်းနှင့် ကိုက်ညီမှုဖြစ်သည်။ ဥပမာ၊ ကျွန်တော်သည် အသုံးပြုသူထံမှ ကျပန်းအက္ခရာစာလုံးတစ်ကြောင်းကို လိုချင်ပြီး ၎င်းထည့်သွင်းမှုသည် ဂဏန်း 6 လုံးတိတိရှည်သင့်သည်ဟုဆိုကြပါစို့။ ရိုးရှင်းသောပုံမှန်အသုံးအနှုန်းကိုသုံးနိုင်သည်ကိုအတည်ပြုရန်။ ပုံမှန်အသုံးအနှုန်းရေးသားခြင်းနှင့် အသုံးပြုမှုကို ပိုမိုကောင်းမွန်သောနည်းလမ်းဖြင့် နားလည်ရန် ပရိုဂရမ်တစ်ခုရေးလိုက်ကြပါစို့။ public static void Main(string[] args) { string patternText = @"^[a-zA-Z]{6}$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Helios")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Helo")); } Output True False ရှင်းလင်းချက် ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် ဂဏန်းခြောက်လုံးပါသော အက္ခရာစာလုံးများ ပါဝင်ခြင်းရှိမရှိ စစ်ဆေးရန် input string ကို တရားဝင်စစ်ဆေးရန် ကြိုးစားနေပါသည်။ အက္ခရာများသည် စာလုံးအသေးနှင့် စာလုံးကြီး နှစ်မျိုးလုံး ဖြစ်နိုင်သည်၊ ထို့ကြောင့် ၎င်းကိုလည်း ထည့်သွင်းစဉ်းစားရန် လိုအပ်ပါသည်။ ထို့ကြောင့်၊ ဤနေရာတွင် ကျွန်ုပ်တို့သည် ပုံမှန်အသုံးအနှုန်းပုံစံတစ်ခုကို ပြောင်းလဲနိုင်သော “patternText” ဖြင့် သတ်မှတ်ပြီး ၎င်းကို regex အရာဝတ္တုသို့ ပေးပို့ပါသည်။ . ယခု၊ နောက်ကုဒ်လိုင်းများသည် အလွန်ရိုးရှင်းပါသည်၊ ကျွန်ုပ်တို့သည် ပုံမှန်အသုံးအနှုန်းနှင့် ထည့်သွင်းသည့်စာကြောင်းကို နှိုင်းယှဉ်ရန် IsMatch နည်းလမ်းကို အသုံးပြုထားပါသည်။ ယခု ကျွန်ုပ်တို့ဖန်တီးထားသော ပုံမှန်ဖော်ပြချက်ကို ကြည့်ကြပါစို့။ စကားရပ် (^[a-zA-Z]{6}$) ကို အပိုင်း 4 ပိုင်းဖြင့် ဖွဲ့စည်းထားသည်။ “^”၊ “[a-zA-Z]”၊ “{6}” နှင့် “$”။ ဒုတိယအပိုင်းသည် စာလုံးအကြီးအတွက် စာလုံးအသေးအတွက် “a-z” နှင့် “A-Z” ဟူသော စကားရပ်ကို ကိုက်ညီအောင်လုပ်ဆောင်ရန် အသုံးပြုသည့် ကိုက်ညီသောအက္ခရာများကို ဖော်ပြသည်။ ပထမပိုင်းအပိုင်းအက္ခရာ “^” သည် ဒုတိယအပိုင်းတွင် သတ်မှတ်ထားသော ပုံစံဖြင့် စတင်ကြောင်း သေချာစေသည် ဤကိစ္စတွင် သတ်မှတ်ထားသော ပုံစံ (ဥပမာ 6) နှင့် “$” သင်္ကေတဖြင့် ၎င်းသည် ဒုတိယအပိုင်းတွင် သတ်မှတ်ထားသည့် ပုံစံဖြင့် အဆုံးသတ်ကြောင်း သေချာပါစေ။ ^[a-zA-Z]{6}$ Scenario 2- "Super" ဖြင့်စသော စကားလုံးတစ်လုံးကို အတည်ပြုရန် ပုံမှန်အသုံးအနှုန်းကို အသုံးပြုပြီး ၎င်းနောက်တွင် အဖြူရောင်နေရာလွတ်ရှိသည်ဆိုလိုသည်မှာ ဝါကျတစ်ခု၏အစတွင် "Super" ရှိနေပါက အတည်ပြုရန်ဖြစ်သည်။ ကျွန်ုပ်တို့သည် အသုံးပြုသူထည့်သွင်းမှုအချို့ကို ဖတ်ရှုနေပြီး အသုံးပြုသူသည် ၎င်းတို့၏ဝါကျကို သီးခြားစကားလုံး၊ နံပါတ် သို့မဟုတ် အက္ခရာဖြင့် အမြဲစတင်ကြောင်း သေချာစေရန် လိုအပ်သည်ဟု ယူဆကြပါစို့။ ရိုးရှင်းသော ပုံမှန်အသုံးအနှုန်းကို အသုံးပြုခြင်းဖြင့် ၎င်းကို လွယ်ကူစွာ ရရှိနိုင်ပါသည်။ နမူနာပရိုဂရမ်ကို ကြည့်ရှုပြီး ဤအသုံးအနှုန်းကို မည်သို့ရေးရမည်ကို အသေးစိတ် ဆွေးနွေးကြပါစို့။ public static void Main(string[] args) { string patternText = @"^Super\s"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Super man")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Superhero")); } Output True False ရှင်းလင်းချက် ထို့အပြင် ဤဥပမာတွင်လည်း၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့လုပ်ခဲ့သည့်အတိုင်း အလားတူကုဒ်ထည့်သွင်းမှုကို အသုံးပြုခဲ့သည် ပထမတစ်ခု။ ဤအခြေအနေရှိ ပုံမှန်အသုံးအနှုန်းပုံစံသည် "စူပါ" ဖြင့် စတင်သည့် စကားလုံးများ သို့မဟုတ် စာကြောင်းများ ပေါင်းစပ်မှုဖြင့် ကိုက်ညီရန် လိုအပ်ပါသည်။ ^Super ထို့ကြောင့် ကျွန်ုပ်တို့သည် စကားလုံး၏အစမှ ကိုက်ညီလိုသည့်အတိုင်း၊ စီးရီး၊ ကျွန်ုပ်တို့သည် “^” သင်္ကေတဖြင့် စတင်မည်ဖြစ်ပြီး၊ ထို့နောက်တွင်၊ ဤအခြေအနေတွင်၊ “စူပါ” နှင့် ကိုက်ညီလိုသော ပုံစံကို ပေးပါမည်။ အခုပုံစံ[1-9] |
[^ အပိုင်းအခြား] | ၎င်းသည် နုတ်ပယ်ထားသော ဇာတ်ကောင်အမျိုးအစားကို ကိုယ်စားပြုသည်။ ကွင်းပိတ်အတွင်းဖော်ပြသည့် အပိုင်းအခြားအတွင်းမဟုတ်ဘဲ မည်သည့်အရာနှင့်မဆို ကိုက်ညီရန်အသုံးပြုသည်။ |
\ | ၎င်းကို ၎င်းတို့၏ကိုယ်ပိုင် regex သင်္ကေတများပါရှိသည့် အထူးဇာတ်ကောင်များနှင့် ကိုက်ညီရန် အသုံးပြုသည်။ မျဥ်းစောင်းကို ၎င်းတို့၏ ပကတိပုံစံရှိ အထူးအက္ခရာများနှင့် ကိုက်ညီရန် အသုံးပြုသည်။ |
အုပ်စုဖွဲ့ခြင်း
အဝိုင်းကွင်းစကွက်များ သို့မဟုတ် ကွင်းစကွင်းပိတ်များကို ပုံမှန်အစိတ်အပိုင်းတစ်ခုကို အုပ်စုဖွဲ့ရန်အတွက် အသုံးပြုနိုင်သည်။ အတူတူထုတ်ဖော်။ ၎င်းသည် အသုံးပြုသူအား စကားရပ်ဖြင့် quantifier တစ်ခုအား ပေါင်းထည့်နိုင်သည်။
အုပ်စုဖွဲ့ခြင်း | အဓိပ္ပာယ် |
---|---|
(အုပ်စု expression ) | အဝိုင်းကွင်းကွင်းများကို အသုံးအနှုန်းတစ်ခုကို အုပ်စုဖွဲ့ရန်အတွက် အသုံးပြုပါသည်။ |
အက္ခရာများသည် “+” သင်္ကေတကို အသုံးပြုမည်ဖြစ်သည်။ ၎င်းတို့ကို ပေါင်းစပ်ပြီး ပထမအပိုင်းအတွက် သင်္ကေတကို ကျွန်ုပ်တို့ရရှိသည်။ (\w+) Bracket သည် ၎င်းကို အပိုင်းများအလိုက် ခွဲခြားထားသည်။ နောက်အပိုင်းကတော့ အစက်သင်္ကေတပါ။ အစက်သင်္ကေတသည် regex တွင် ၎င်း၏အဓိပ္ပာယ်ရှိသောကြောင့်၊ ၎င်းကို ပကတိအဓိပ္ပာယ်ပေးရန်အတွက် ၎င်းရှေ့တွင် backslash ကိုအသုံးပြုပါမည်။ နှစ်ခုစလုံးကို ပေါင်းစပ်ပြီး ကျွန်ုပ်တို့တွင် regex ၏ ပထမအပိုင်းနှစ်ပိုင်းကို ဖုံးအုပ်ထားသည်။ (\w+)\. ယခု တတိယနှင့် နောက်ဆုံးအပိုင်းအတွက်၊ လိုအပ်သောဖိုင် extension များကို “ခွဲခြားသတ်မှတ်နိုင်သည်။အက္ခရာစာလုံးများ။ အကယ်၍ သင်သည် ဂဏန်း သို့မဟုတ် စာလုံးအကြီးအက္ခရာများကိုပါ ထည့်သွင်းနိုင်သော်လည်း ဤအခြေအနေအတွက်၊ ကျွန်ုပ်တို့သည် စာလုံးသေးအက္ခရာများဖြင့် လုပ်ဆောင်သွားပါမည်။ အတိုကောက်စာလုံး 2 မှ 12 အထိ အရှည်ရှိသော စာလုံးအသေးအက္ခရာများအတွက် စကားရပ်ကို ထည့်ပါက၊ ထို့နောက် ကျွန်ုပ်တို့တွင် အောက်ပါအသုံးအနှုန်းကို ရရှိပါမည်။ ^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12} ယခု၊ စတုတ္ထအခြေအနေနှင့်ဆင်တူသော ဒိုမိန်းတိုးချဲ့မှုဆိုင်ရာအသုံးအနှုန်းနှင့် ကျွန်ုပ်တို့သာ ကျန်ရှိတော့သည်၊ အချို့သော သီးခြားဒိုမိန်းတိုးချဲ့မှုများကို ကျွန်ုပ်တို့ကိုင်တွယ်ပါမည်။ သင်လိုချင်ပါက ၎င်းတို့ကို စက်ဝိုင်းပုံကွင်းအတွင်း ထည့်သွင်းပြီး "" ဖြင့် ပိုင်းခြားခြင်းဖြင့် ၎င်းတို့ကို ထပ်မံထည့်နိုင်သည်။ |