PHP တွင် Regular Expressions မိတ်ဆက်

Regular Expressions များသည် ရှုပ်ထွေးသော ရှာဖွေရေးနှင့် အစားထိုးရေး အတွက် ညွှန်ကြားချက်များ ဖြစ်သည်။ ၎င်းတို့သည် အလွန် စိတ်ဝင်စားစရာ အရာများကို လုပ်ဆောင်နိုင်စေသော်လည်း၊ စိတ်ပျက်စရာကောင်းသည်မှာ ၎င်းတို့ကို ကျွမ်းကျင်အောင် လေ့လာရန် အတော်လေး ခက်ခဲပါသည်။

Regular Expressions များနှင့် အလုပ်လုပ်ရန် PHP တွင် လုပ်ဆောင်ချက် (functions) အမျိုးမျိုး ရှိပါသည်။ ကျွန်ုပ်တို့သည် ၎င်းတို့ကို preg_replace လုပ်ဆောင်ချက်၏ ဥပမာဖြင့် စတင် မိတ်ဆက်ပါမည်။ ဤလုပ်ဆောင်ချက်သည် ပထမဆုံး parameter အဖြစ် *ဘာကို* ပြောင်းရမည်ကို လက်ခံပြီး၊ ဒုတိယ parameter အဖြစ် *ဘာနှင့်* ပြောင်းရမည်ကို လက်ခံကာ တတိယ parameter အဖြစ် *မည်သည့်* string ထဲတွင် အစားထိုးရမည်ကို လက်ခံပါသည်။

php<?php
  preg_replace(ဘာကိုအစားထိုးမည်၊ ဘာနဲ့အစားထိုးမည်၊ string);
?>

ထိုသို့ဖြင့် ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်သည် ပထမ parameter အဖြစ် ရိုးရှင်းသော string တစ်ခုကို မဟုတ်ဘဲ၊ # သင်္ကေတများအတွင်း ထားရှိသော ညွှန်ကြားချက်များ စုစည်းမှုပါဝင်သည့် string တစ်ခုဖြစ်သော regular expression တစ်ခုကို လက်ခံပါသည်။ ဤ # သင်္ကေတများကို regular expressions ၏ ကန့်သတ်သင်္ကေတများ (delimiters) ဟု ခေါ်ပါသည်။

ကန့်သတ်သင်္ကေတများ (delimiters) ၏ နောက်တွင် modifiers များကို ရေးသားနိုင်ပါသည်။ ၎င်းတို့သည် regular expression ၏ အထွေထွေ ဂုဏ်သတ္တိများကို ပြောင်းလဲပေးသော ညွှန်ကြားချက်များ ဖြစ်သည်။

Regular expressions များကိုယ်၌ သင်္ကေတ နှစ်မျိုး ပါဝင်သည်။ ၎င်းတို့မှာ ၎င်းတို့ကိုယ်၎င်း ကိုယ်စားပြုသော သင်္ကေတများနှင့် special characters ဟုခေါ်သော ညွှန်ကြားချက်ပေးသည့် သင်္ကေတများ ဖြစ်သည်။

အက္ခရာများနှင့် ဂဏန်းများသည် ၎င်းတို့ကိုယ်၎င်း ကိုယ်စားပြုပါသည်။ အောက်ပါ ဥပမာတွင် ကျွန်ုပ်တို့သည် regular expression တစ်ခုကို အသုံးပြု၍ 'a' အက္ခရာကို '!' သင်္ကေတဖြင့် အစားထိုးပါမည်။

php<?php
  preg_replace('#a#', '!', 'bab'); // 'b!b' ကို ပြန်ပေးပါမည်
?>

သို့သော် . (ပုတ်) သင်္ကေတသည် special character တစ်ခု ဖြစ်ပြီး မည်သည့် သင်္ကေတကိုမဆို ကိုယ်စားပြုပါသည်။ အောက်ပါ ဥပမာတွင် ကျွန်ုပ်တို့သည် ဤပုံစံအတိုင်း string တစ်ခုကို ရှာဖွေပါမည်။ 'x' အက္ခရာ၊ ထို့နောက် မည်သည့် သင်္ကေတမဆို၊ ထို့နောက် ထပ်မံ၍ 'x' အက္ခရာ။

php<?php
  preg_replace('#x.x#', '!', 'xax eee'); // '! eee' ကို ပြန်ပေးပါမည်
?>
Задание 1

string တစ်ခု ပေးထားသည်။

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

�ပုံစံအတိုင်း 'ahb', 'acb', 'aeb' string များကို ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ။ 'a' အက္ခရာ၊ မည်သည့် သင်္ကေတမဆို၊ 'b' အက္ခရာ။

Задание 2

string တစ်ခု ပေးထားသည်။

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

�ပုံစံအတိုင်း 'aeeb', 'adcb', 'axeb' string များကို ရှာဖွေပေးမည့် regular expression တစ်ခုကို ရေးပါ။ 'a' အက္ခရာ၊ မည်သည့် သင်္ကေတ နှစ်ခု၊ 'b' အက္ခရာ။