PHP ရှိ regular expression အစားထိုးခြင်းများတွင် capturing groups များ
preg_replace function ဖြင့်အလုပ်လုပ်စဉ်၊
regular expression အတွင်းတွင် တစ်ခုခုကို capturing group ထဲထည့်ထားပါက၊
အစားထိုးမည့်စာကြောင်းအတွင်းတွင် ထို capturing group ၏အကြောင်းအရာကို
ဒေါ်လာဆိုင်းဘုတ် $ နှင့် capturing group နံပါတ်ကိုရေးခြင်းဖြင့် ထည့်သွင်းနိုင်ပါသည်။
ဥပမာ၊ $0 - သုည capturing group၊
$1 - ပထမ capturing group၊ $2 - ဒုတိယ
capturing group စသဖြင့် ဖြစ်ပါသည်။
၎င်းက မည်သည့်အတွက် လိုအပ်ပြီး မည်သို့အသုံးပြုရမည်ကို ဥပမာများဖြင့် ကြည့်ရှုကြည့်ပါစို့။
ဥပမာ
နံပါတ်အားလုံးကိုရှာဖွေပြီး ၎င်းတို့ကိုယ်တိုင်ကို သို့သော် ကြမ်းပြင်ကွင်းသစ်စက်ထဲတွင် အစားထိုးကြပါစို့။ ဤသို့ပြုလုပ်ရန် ရှာဖွေတွေ့ရှိသော နံပါတ်အားလုံးကို ၎င်းတို့ကိုယ်တိုင်နှင့် အစားထိုးမည်ဖြစ်ပြီး သို့သော် ကြမ်းပြင်ကွင်းသစ်စက်ထဲတွင် ဖြစ်သည်-
<?php
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းမည်ဖြစ်သည်-
'{1} {23} {456} xax'
ဥပမာ
အဝန်းဝိုင်းရှိ x များဖြင့် ကိုယ်စားပြုသော
နံပါတ်အားလုံးကို ရှာဖွေပြီး ထို
နံပါတ်များကို ၎င်းတို့ကိုယ်တိုင်နှင့် အစားထိုးကြပါစို့၊ သို့သော် '!' သင်္ကေတများဖြင့် ဝန်းရံထားသည်-
<?php
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းမည်ဖြစ်သည်-
'!1! !23! !456! xax'
ဥပမာ
အောက်ပါပြဿနာကို ဖြေရှင်းကြပါစို့- အောက်ပါပုံစံရှိ စာကြောင်းများပေးထားသည်
'aaa@bbb' - စာလုံးများ၊ ပြီးနောက် at သင်္ကေတ၊
ပြီးနောက် စာလုံးများ။
'@' မတိုင်မီနှင့် နောက်ပိုင်းရှိ စာလုံးများကို
နေရာလဲလှယ်ရန်လိုအပ်သည်။ အကောင်အထည်ဖော်ကြပါစို့-
<?php
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းမည်ဖြစ်သည်-
'bbb@aaa ddd@ccc'
လက်တွေ့လေ့ကျင့်ခန်းများ
အောက်ပါစာကြောင်းကို ပေးထားသည်-
<?php
$str = '12 34 56 78';
?>
နံပါတ်နှစ်လုံးပါသော နံပါတ်အားလုံးတွင် ဂဏန်းများကို နေရာလဲလှယ်ပါ။
ရက်စွဲပါသော စာကြောင်းကို ပေးထားသည်-
<?php
$str = '31.12.2025';
?>
ထိုရက်စွဲကို '2025.12.31' သို့ ပြောင်းလဲပါ။