⊗ppPmRgVA 258 of 447 menu

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) တစ်ခုရယူပါ။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်