PHP ရှိ ရက်ဂျက်စ် တွင် set များအတွင်း ဟိုက်ဖင်
ဟိုက်ဖင်သည်လည်း [] အတွင်းရှိ အထူးသင်္ကေတတစ်ခုဖြစ်သည်
(အပြင်ဘက်တွင်မူ မဟုတ်ပါ)။ အကယ်၍ သင်သည် ဟိုက်ဖင်ကိုယ်၎င်းကို သင်္ကေတအဖြစ် လိုအပ်ပါက၊
၎င်းကို အုပ်စုခွဲခြားသတ်မှတ်သည့်အရာအဖြစ် မယူမှတ်မည့် နေရာတွင် ထားပါ။
ဤအချက်သည် အဘယ်ကြောင့် အရေးကြီးသနည်း- သင်ကိုယ်တိုင် သတိမထားမိဘဲ သင်္ကေတအုပ်စုတစ်ခုကို ဖန်တီးမိနိုင်သည်။
ဥပမာအားဖြင့်၊ ဤကဲ့သို့ - [:-@] - သင်သည် အစက်နှစ်စက်၊ ဟိုက်ဖင်နှင့် @ သင်္ကေတကို ရွေးနေသည်ဟု ထင်နေသော်လည်း၊
တကယ်တော့ : နှင့် @ အကြားရှိ သင်္ကေတအုပ်စုတစ်ခု ဖြစ်သွားသည်။ ဤအုပ်စုတွင် အောက်ပါသင်္ကေတများ ပါဝင်သည်-
:, ;, ?, <, =, >.
၎င်းတို့ကို ဘယ်ကရသနည်း။ ASCII ဇယားမှ ဖြစ်သည်- အစက်နှစ်စက်၏ နံပါတ်သည် @ ထက် နည်းသည်- ထို့ကြောင့် အုပ်စုတစ်ခု ဖြစ်လာသည်။ ဆိုလိုသည်မှာ အုပ်စုအားလုံးသည် ASCII ဇယားအရ ရရှိသည် (လိုလျှင် ဤအချက်ကို အသုံးချနိုင်သည်)။
ဤပြဿနာကို မည်သို့ ဖြေရှင်းမည်နည်း- ဟိုက်ဖင်သင်္ကေတကို ၎င်းသည် အုပ်စုသင်္ကေတအဖြစ် မယူမှတ်ရသည့် နေရာတွင် ထားပါ၊ ဥပမာ- အစတွင် သို့မဟုတ် အဆုံးတွင်
(ဆိုလိုသည်မှာ [ ပြီးနောက် သို့မဟုတ် ] မတိုင်မီတွင်)။
ဟိုက်ဖင်ကို escape လုပ်ပြီး အသုံးပြုနိုင်သည်- ထိုအခါ
၎င်းသည် နေရာအတိအကျမရွေး ၎င်းကိုယ်၎င်းကို ကိုယ်စားပြုမည်။ ဥပမာ၊ [:-@] အစား
[:\-@] ဟု ရေးပါ- ထိုအခါ အုပ်စုမရှိတော့ဘဲ၊
သင်္ကေတ သုံးခု ဖြစ်လာမည်- အစက်နှစ်စက်၊ ဟိုက်ဖင်နှင့် @.
ဥပမာ
အောက်ပါ ဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်သည်-
ဂဏန်း 1, ထို့နောက် 'a' မှ
'z' ထိ စာလုံး, ထို့နောက် ဂဏန်း 2:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[a-z]2#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable ထဲတွင် အောက်ပါအတိုင်း ရေးသွင်းမည်:
'! 1-2 ! !'
ဥပမာ
ယခု ဟိုက်ဖင်ကို escape လုပ်ကြည့်ပါ။ ရလဒ်အနေဖြင့်
ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်လာမည်- ဂဏန်း 1, ထို့နောက်
စာလုံး 'a', သို့မဟုတ် ဟိုက်ဖင်၊ သို့မဟုတ် စာလုံး 'z',
ထို့နောက် ဂဏန်း 2:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[a\-z]2#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable ထဲတွင် အောက်ပါအတိုင်း ရေးသွင်းမည်:
'! ! 1c2 !'
ဥပမာ
ဟိုက်ဖင်ကို escape မလုပ်ဘဲ ၎င်း၏ နေရာကို ပြောင်းနိုင်သည်:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[az-]2#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable ထဲတွင် အောက်ပါအတိုင်း ရေးသွင်းမည်:
'! ! 1c2 !'
ဥပမာ
အောက်ပါ ဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်သည်-
ပထမ သင်္ကေတသည် အက္ခရာသေး သို့မဟုတ်
ဟိုက်ဖင် '-', ထို့နောက် စာလုံး 'x' နှစ်လုံး:
<?php
$str = 'axx Axx -xx @xx';
$res = preg_replace('#[a-z-]xx#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable ထဲတွင် အောက်ပါအတိုင်း ရေးသွင်းမည်:
'! Axx ! @xx'
ဥပမာ
အောက်ပါ ဥပမာတွင် ရှာဖွေမှု ပုံစံသည် ဤသို့ဖြစ်သည်-
ပထမ သင်္ကေတသည် အက္ခရာသေး၊ အက္ခရာကြီး
သို့မဟုတ် ဟိုက်ဖင် '-', ထို့နောက် စာလုံး
'x' နှစ်လုံး:
<?php
$str = 'axx Axx -xx @xx';
$res = preg_replace('#[a-zA-Z-]xx#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable ထဲတွင် အောက်ပါအတိုင်း ရေးသွင်းမည်:
'! ! ! @xx'
ဥပမာ
ဟိုက်ဖင်ကို အုပ်စုနှစ်ခုကြားတွင် ထားနိုင်သည်- ထိုနေရာတွင် ၎င်းသည် နောက်ထပ် အုပ်စုတစ်ခု မဖန်တီးနိုင်တော့ပါ:
<?php
$str = 'axx 9xx -xx @xx';
$res = preg_replace('#[a-z-0-9]xx#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable ထဲတွင် အောက်ပါအတိုင်း ရေးသွင်းမည်:
'! ! ! @xx'
လက်တွေ့ လေ့ကျင့်ခန်းများ
စာကြောင်း တစ်ကြောင်း ရှိသည်:
<?php
$str = 'xaz xBz xcz x-z x@z';
?>
�ောက်ပါ ပုံစံအတိုင်း စာကြောင်းအားလုံးကို ရှာပါ-
စာလုံး 'x', အက္ခရာကြီး သို့မဟုတ် အက္ခရာသေး
သို့မဟုတ် ဟိုက်ဖင်, စာလုံး 'z'.
စာကြောင်း တစ်ကြောင်း ရှိသည်:
<?php
$str = 'xaz x$z x-z xcz x+z x%z x*z';
?>
အောက်ပါ ပုံစံအတိုင်း စာကြောင်းအားလုံးကို ရှာပါ-
စာလုံး 'x', ထို့နောက် ဒေါ်လာ သင်္ကေတ၊ သို့မဟုတ်
ဟိုက်ဖင် သို့မဟုတ် အပေါင်းသင်္ကေတ၊ ထို့နောက် စာလုံး 'z'.