PHP တွင် Regular Expression အသုံးပြု၍ Lookahead
တစ်ခါတစ်ရံ ဤကဲ့သို�့သော အလုပ်မျိုးကို ဖြေရှင်းရန် လိုအပ်ပါသည်။
စာကြောင်း 'aaa' ကို ရှာပြီး '!' နှင့် အစားထိုးပါ၊
သို့သော် 'aaa' ၏ နောက်တွင်
'x' ရှိမှသာ၊ ထို'x' ကိုမူ
အစားမထိုးပါ။ အကယ်၍ ဤအလုပ်ကို တိုက်ရိုက်
ဖြေရှင်းရန် ကြိုးစားပါက အောင်မြင်မည် မဟုတ်ပါ။
<?php
preg_replace('#aaax#', '!', 'aaax'); // '!' ဖြစ်လာမည်၊ '!x' ဖြစ်ရမည်
?>
ဤအလုပ်ကို ဖြေရှင်းရန် 'x' ကို
အစားမထိုးရန် ပြောဆိုနိုင်သော နည်းလမ်း လိုအပ်ပါသည်။
ထိုသို့ပြုလုပ်ရန် ကွင်းစကွင်းပိတ် အထူး (?= ) ကို
အသုံးပြုပါသည်၊ ၎င်းတို့သည် ရှေ့ကကြည့်ရုံသာကြည့်ပြီး
ယူသွားခြင်း မပြုပါ။
ဤကွင်းခေါင်းများကို အပြုသဘော ရှေ့ကြိုကြည့်ခြင်း
(Positive Lookahead) ဟုခေါ်ပါသည်။ အပြုသဘော - အဘယ်ကြောင့်ဆိုသော် 'x'
(ကျွန်ုပ်တို့၏ အခြေအနေတွင်) ရှိရမည် - ထိုအခါမှသာ
အစားထိုးမှု ဖြစ်ပေါ်မည်။
ကျွန်ုပ်တို့၏ အလုပ်ကို ဖြေရှင်းရန် ဤကွင်းခေါင်းများကို အသုံးပြုကြပါစို့။
<?php
preg_replace('#aaa(?=x)#', '!', 'aaax'); // '!x' ကို ပြန်ပေးမည်
?>
အပျက်သဘော ရှေ့ကြိုကြည့်ခြင်း (Negative Lookahead)
လည်း ရှိပါသည် - (?! ) - ၎င်းသည် ဆန့်ကျင်ဘက်အားဖြင့်
တစ်စုံတစ်ခု မရှိရမည်ဟု ပြောပါသည်။ နောက်ဥပမာတွင်
အစားထိုးမှုသည် 'aaa' ၏ နောက်တွင်
'x' မရှိမှသာ ဖြစ်ပေါ်မည်။
<?php
preg_replace('#aaa(?!x)#', '!', 'aaab'); // '!b' ကို ပြန်ပေးမည်
?>
ဖန်ရှင်အမည်များ ပါဝင်သော စာကြောင်းတစ်ခု ရှိသည်။
<?php
$str = 'func1() func2() func3()';
?>
စာကြောင်းမှ ဖန်ရှင်အမည်များ ပါဝင်သော ခင်းကျင်းချက် (array) တစ်ခုရယူပါ။
tag တစ်ခုပါဝင်သော စာကြောင်းတစ်ခု ရှိသည်။
<?php
$str = '<a href="" class="eee" id="zzz">';
?>
ထို tag ၏ attribute အမည်များ ပါဝင်သော ခင်းကျင်းချက် (array) တစ်ခုရယူပါ။