လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Preg_replace ပုံမှန်စကားရပ် syntax: ခြစ်ရာကနေပုံမှန်အစားထိုးကျွမ်းကျင်မှုကိုလေ့လာပါ

Preg_replace ပုံမှန်စကားရပ် syntax: ခြစ်ရာကနေပုံမှန်အစားထိုးကျွမ်းကျင်မှုကိုလေ့လာပါ

gitbox 2025-09-17

PHP တွင် PREG_REPER () သည်စာသားအတိုင်းအဆင်ပြေဆုံး "ဆွစ်ဇာလန်စစ်တပ်ဓား" ဖြစ်သည်။ ၎င်းသည် PCRE (Perl သဟဇာတဖြစ်သောပုံမှန်အသုံးအနှုန်းများ) ကိုအခြေခံသည်။ ပုံမှန်အစားထိုး ခြင်း ၏အဓိကအကြောင်းအရာများကိုမြန်မြန်ဆန်ဆန်ကျွမ်းကျင်စွာကျွမ်းကျင်ပိုင်နိုင်စွာကျွမ်းကျင်မှုကိုအထောက်အကူပြုရန်အတွက်ဤဆောင်းပါးသည်အစွန်အဖျားကိုအာရုံစိုက်ခြင်း,

1 ။ Preg_replace ၏အခြေခံအသုံးပြုမှု ()

function ကိုလက်မှတ်:

 <span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(
    </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>,
    </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$replacement</span></span><span>,
    </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$subject</span></span><span>,
    </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$limit</span></span><span> = -</span><span><span class="hljs-number">1</span></span><span>,
    </span><span><span class="hljs-keyword">int</span></span><span> &amp;</span><span><span class="hljs-variable">$count</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>
)
</span></span>
  • $ ပုံစံ - ပုံမှန်အသုံးအနှုန်း (စည်းမျဉ်းစည်းကမ်းတွေကိုကိုယ်စားပြုခြင်း,

  • $ အစားထိုးခြင်း - အကြောင်းအရာကိုအစားထိုးပါ။

  • $ ဘာသာရပ် - string ကိုဆိုင်းငံ့ထားခြင်း (သို့မဟုတ်ကြိုးများ)

  • $ ကန့်သတ်ချက် - အစားထိုးကာလ၏အထက်ပိုင်းကန့်သတ်ချက် (ပုံမှန် -1 ဆိုသည်ကန့်သတ်ချက်မရှိပါ)

  • $ ရေတွက် : output parameter, အမှန်တကယ်အစားထိုးအရေအတွက်ကိုပြန်သွားပါ

အနည်းဆုံးဥပမာ -

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">"Color or Colour? I like the color blue."</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/colou?r/i'</span></span><span>, </span><span><span class="hljs-string">'color'</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>, -</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-variable">$count</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Color or color? I like the color blue.</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> PHP_EOL . </span><span><span class="hljs-string">"Replaced: <span class="hljs-subst">$count</span></span></span><span>"; </span><span><span class="hljs-comment">// Replaced: 2</span></span><span>
</span></span>

/ colou? r / i :? ယခင် ဦး optional ဖြစ်ခွင့်ပြုပါ။ ငါ Modifier သည်စာလုံးအကြီးနှင့်အသေးများကိုလျစ်လျူရှုထားသည်။

2 ။ Seatchator နှင့် Modifier

2.1 delimiters

ဘုံ delimiters / # ~ ~% {} () နှင့်ဒါအပေါ်။ အသက်သာဆုံးရွေးချယ်မှုမှာပုံစံနှင့်ဆန့်ကျင်သောခွဲခြမ်းစိတ်ဖြာခြင်းကိုရွေးချယ်ရန်ဖြစ်သည်။

 <span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'#https?://[^\s]+#'</span></span><span>, </span><span><span class="hljs-string">'[link]'</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
</span></span>

mode မှာ / mode မှာ / မှာနံပါတ်တစ်ခုရှိတဲ့အခါ # ကို အသုံးပြုခြင်းဟာလွတ်မြောက်လာတဲ့အရေအတွက်ကိုရှောင်ရှားနိုင်တယ်။

2.2 ပုံမှန်ပြုပြင်မွမ်းမံ

  • i : အမှုကိုလျစ်လျူရှုပါ

  • M : Multi-line mode ( ^ နှင့် $ သည် လိုင်းတစ်ခုစီ၏အစ / အဆုံးနှင့်ကိုက်ညီလိမ့်မည်)

  • S : တစ်ခုတည်းသောပုံစံ ( အသစ်နှင့်ကိုက်ညီ)

  • U : UTF-8 ကိုနှိပ်ပါ (တရုတ် / emoji အခြေအနေများအတွက်အထူးအကြံပြုလိုပါသည်)

  • X : ကွက်လပ်ရှိကွက်လပ်များနှင့်မှတ်ချက်များကိုလျစ်လျူရှုပါ (ပိုမိုကောင်းမွန်သောဖတ်ရှုခြင်း)

  • U : ပျင်းရိသော quotifier ပြောင်းရွှေ့မှု

ဥပမာ (မျိုးစုံ lines + တစ်ခုတည်းလိုင်းများ):

 <span><span><span class="hljs-variable">$log</span></span><span> = </span><span><span class="hljs-string">"ID:42\nPayload:\n{\n  \"a\":1\n}\nEnd"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/^Payload:(.*)End$/ims'</span></span><span>, </span><span><span class="hljs-string">'[DATA HIDDEN]'</span></span><span>, </span><span><span class="hljs-variable">$log</span></span><span>);
</span></span>

3 ။ metacharacters နှင့် quotifiers များနှင့်လျင်မြန်စွာစတင်ပါ

  • ဇာတ်ကောင်အတန်းများ - [ABC] , [abc], [ ^ ABC] , \ W စကားလုံးများ ,

  • နေရာချထား: ^ လိုင်းအစ, $ လိုင်းအဆုံး, \ b စကားလုံးနယ်နိမိတ်

  • Quantifiers: * (0+), + (1+) , (0/1), {m, n} (အကွာအဝေး)

  • လောဘကြီးသူ / ပျင်းရိ: + လောဘကြီးခြင်း +? ပျင်းရိခြင်း (တတ်နိုင်သမျှအနည်းဆုံးအဖြစ်)

ဥပမာ (စာတိုက်ပုံးမျက်နှာဖုံး):

 <span><span><span class="hljs-variable">$email</span></span><span> = </span><span><span class="hljs-string">'[email protected]'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/(?&lt;=.).+?(?=@)/'</span></span><span>, </span><span><span class="hljs-string">'***'</span></span><span>, </span><span><span class="hljs-variable">$email</span></span><span>);
</span><span><span class="hljs-comment">// a***@example.com</span></span><span>
</span></span>

ရှာဖွေမှုမတိုင်မီနှင့်အပြီး သုံးပါ (? <= ... ... ... ) နှင့် (? = ... ) နှင့် မလိုအပ်သောစာလုံးများကိုရှောင်ရှားရန်အစားထိုးအကွာအဝေးကိုတိကျစွာနေရာချထားရန်။

4 ။ အုပ်စုလိုက်နှင့်နောက်ခံဘိုးဘေးများဖမ်းယူ

  • Capture Grouping : (... ) ကိုက်ညီသောအကြောင်းအရာများကို ဒေါ်လာ 1 ဒေါ်လာဖြင့်ဒေါ်လာ 1 ဒေါ်လာဖြင့်သိမ်းဆည်းလိမ့်မည်။ (အစားထိုး string တွင်အသုံးပြုသည်)

  • ဖမ်းဆီးရမိသောအုပ်စုများ - (? ... ) သာစုစည်းခြင်းသည်ကယ်တင်ခြင်းမခံရပါ,

ဥပမာ (အမည် formating: Zhang San-Li SiZhang San နှင့် Li SI): Zhang San နှင့် Li SI ):

 <span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-string">'Zhang San-li si'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/^(\S+)\s*-\s*(\S+)$/u'</span></span><span>, </span><span><span class="hljs-string">'$1 &amp; $2'</span></span><span>, </span><span><span class="hljs-variable">$name</span></span><span>);
</span><span><span class="hljs-comment">// Zhang San &amp; li si</span></span><span>
</span></span>

ဥပမာ url standardization: http://exampe.com/path/path →စာလုံးအသေးအမည်):

 <span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">'HTTP://EXAMPLE.COM/Path'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/^(https?):\/\/([^\/]+)/ie'</span></span><span>, </span><span><span class="hljs-string">"'<span class="hljs-subst">$1</span></span></span><span>://'.strtolower('</span><span><span class="hljs-subst">$2</span></span><span>')", </span><span><span class="hljs-variable">$url</span></span><span>);
</span></span>

?? / E မော်ဒုံးသည်ကုဒ်အဟောင်း ( တန်ဖိုးမထားသည့် ) တွင်ပါ 0 င်ပြီး၎င်းကိုမသုံးပါ။ ကျေးဇူးပြု. ပြန်ခေါ်ခြင်းကို အစား (နောက်အပိုင်းကိုကြည့်ပါ) ။

5 ။ "Smart Replacement" လုပ်ရန် callbacks ကိုသုံးပါ။ Preg_replace_Callback ()

အစားထိုးတန်ဖိုးကို တွက်ချက်ရန် လိုအပ်သည့်အခါ (အမှုပြောင်းလဲခြင်း, ပြောင်းလဲခြင်းနိဂုံးချုပ်,

 <span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">"HTTP://EXAMPLE.COM/Path and http://MiXeD.com/Another"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace_callback</span></span><span>(
    </span><span><span class="hljs-string">'#\bhttps?://([^/\s]+)#i'</span></span><span>,
    function (</span><span><span class="hljs-variable">$m</span></span><span>) {
        </span><span><span class="hljs-comment">// $m[0] ဒါဟာတစ်ခုလုံးကိုပွဲစဉ်ပါပဲ,$m[1] ဒိုမိန်းအမည်</span></span><span>
        </span><span><span class="hljs-variable">$scheme</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stripos</span></span><span>(</span><span><span class="hljs-variable">$m</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], </span><span><span class="hljs-string">'https://'</span></span><span>) === </span><span><span class="hljs-number">0</span></span><span> ? </span><span><span class="hljs-string">'https://'</span></span><span> : </span><span><span class="hljs-string">'http://'</span></span><span>;
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$scheme</span></span><span> . </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$m</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]);
    },
    </span><span><span class="hljs-variable">$input</span></span><span>
);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
</span><span><span class="hljs-comment">// http://example.com/Path and http://mixed.com/Another</span></span><span>
</span></span>

အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်အတွက်သင့်လျော်သောအစ်မလုပ်ဆောင်မှုသည် Preg_replace_callback_array () သည်စည်းမျဉ်းများစွာနှင့်ပြန်လည်ထူထောင်ရေးများကိုတစ်ချိန်တည်းတွင်မှတ်ပုံတင်နိုင်သည်။

 <span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">"Price: 19.99 USD, Date: 2025-08-25"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace_callback_array</span></span><span>([
    </span><span><span class="hljs-string">'/\b(\d+(?:\.\d{2})?)\s*USD\b/'</span></span><span> =&gt; fn(</span><span><span class="hljs-variable">$m</span></span><span>) =&gt; </span><span><span class="hljs-string">'$'</span></span><span> . </span><span><span class="hljs-variable">$m</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>],
    </span><span><span class="hljs-string">'/\b(\d{4})-(\d{2})-(\d{2})\b/'</span></span><span>  =&gt; </span><span><span class="hljs-function"><span class="hljs-keyword">fn</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$m</span></span></span><span>) =&gt; </span><span><span class="hljs-string">"<span class="hljs-subst">{$m[2]}</span></span></span><span>/</span><span><span class="hljs-subst">{$m[3]}</span></span><span>/</span><span><span class="hljs-subst">{$m[1]}</span></span><span>",
], </span><span><span class="hljs-variable">$text</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Price: $19.99, Date: 08/25/2025</span></span><span>
</span></span>

6 ။ Multi- စည်းမျဉ်းသုတ်သုတ်

$ ပုံစံ နှင့် $ အစားထိုး ထောက်ခံမှု array နှစ်ခုလုံး။ အစားထိုးတန်ဖိုးကိုတစ်ခုအနေဖြင့်မကိုက်ညီပါကတူညီသောအစားထိုးတန်ဖိုးကိုတစ်ခုချင်းစီကိုအသုံးမပြုပါ။

 <span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">"foo 123 bar 456 baz"</span></span><span>;
</span><span><span class="hljs-variable">$patterns</span></span><span> = [</span><span><span class="hljs-string">'/\bfoo\b/'</span></span><span>, </span><span><span class="hljs-string">'/\d+/'</span></span><span>, </span><span><span class="hljs-string">'/\bbaz\b/'</span></span><span>];
</span><span><span class="hljs-variable">$replacements</span></span><span> = [</span><span><span class="hljs-string">'FOO'</span></span><span>, </span><span><span class="hljs-string">'[NUM]'</span></span><span>, </span><span><span class="hljs-string">'BAZ'</span></span><span>];
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-variable">$patterns</span></span><span>, </span><span><span class="hljs-variable">$replacements</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);
</span><span><span class="hljs-comment">// FOO [NUM] bar [NUM] BAZ</span></span><span>
</span></span>

7 ။ ယူနီကုတ် / တရုတ်နှင့်နယ်နိမိတ်ပြ issues နာများ

Multibyte စာလုံးများကိုမချိုးဖျက်ရန်သင်ပုံမှန်အားဖြင့် Updifier ကိုပုံမှန်အားဖြင့်ထည့်ရန်အကြံပြုသည်။

  • တရုတ်ပါဝင်သူနယ်နိမိတ်ရရှိနိုင်ပါသည် \ ခ ? စိတ်မချရသော \ ခသည် ascii စကားလုံးအက္ခရာများကိုရည်ရွယ်သော "စကားလုံးနယ်နိမိတ်" ဖြစ်သည်။ တရုတ်နယ်နိမိတ်များကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ ရှင်းလင်းသောဇာတ်ကောင်အတန်းများ သို့မဟုတ် ရှာဖွေခြင်းမပြုမီနှင့်ပြီးနောက်ကို သုံးပါ။

ဥပမာ (တရုတ်နှင့်နံပါတ်များအကြားအာကာသကိုထည့်ပါ):

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"ထင်မြင်ချက်2တင်ခဲ့သည်2025ခုနှစ်8လ25နေ့"</span></span><span>;
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/(?&lt;=[\x{4e00}-\x{9fa5}])(?=\d)/u'</span></span><span>, </span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$str</span></span><span>);
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/(?&lt;=\d)(?=[\x{4e00}-\x{9fa5}])/u'</span></span><span>, </span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$str</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>; </span><span><span class="hljs-comment">// ထင်မြင်ချက် 2 တင်ခဲ့သည် 2025 ခုနှစ် 8 လ 25 နေ့</span></span><span>
</span></span>

\ x {4e00} - \ x {9FA5} သည်များသောအားဖြင့်အသုံးပြုသောတရုတ်ဇာတ်ကောင်ကြားကာလတစ်ခုဖြစ်သည်

8 ။ ဘုံအစားထိုးအခြေအနေများအတွက်အမှန်တကယ်တိုက်ခိုက်ရေး

8.1 HTML သန့်ရှင်းရေး ("Parse HTML" ဟုသံတူမရေးရန်သတိထားပါ။ )

ရည်မှန်းချက် - tags အားလုံးကိုဖယ်ရှားပြီးစာသားကိုသာထားပါ။

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"&lt;p&gt;Hello &lt;strong&gt;world&lt;/strong&gt; &amp;copy; 2025&lt;/p&gt;"</span></span><span>;
</span><span><span class="hljs-variable">$plain</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/&lt;[^&gt;]+&gt;/'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$plain</span></span><span>; </span><span><span class="hljs-comment">// Hello world ? 2025</span></span><span>
</span></span>

ရိုးရှင်းသောသန့်ရှင်းရေးသည်အဆင်ပြေပါသည်။ ရှုပ်ထွေးသော HTML structures အားမြင့်မားစေရန် DOM ကိုသုံးပါ။

8.2 တယ်လီဖုန်း / ကဒ်နံပါတ် desensitization

 <span><span><span class="hljs-variable">$phone</span></span><span> = </span><span><span class="hljs-string">"13812345678"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/(\d{3})\d{4}(\d{4})/'</span></span><span>, </span><span><span class="hljs-string">'$1****$2'</span></span><span>, </span><span><span class="hljs-variable">$phone</span></span><span>);
</span><span><span class="hljs-comment">// 138****5678</span></span><span>
</span></span>

8.3 အသုတ် variable variable placeholder အစားထိုး (သတ္တုအထိမ်းအချုပ် syntax)

 <span><span><span class="hljs-variable">$template</span></span><span> = </span><span><span class="hljs-string">"Hi {name}, your order {id} is {status}."</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Alice'</span></span><span>, </span><span><span class="hljs-string">'id'</span></span><span> =&gt; </span><span><span class="hljs-number">42</span></span><span>, </span><span><span class="hljs-string">'status'</span></span><span> =&gt; </span><span><span class="hljs-string">'shipped'</span></span><span>];

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace_callback</span></span><span>(</span><span><span class="hljs-string">'/\{(\w+)\}/'</span></span><span>, function(</span><span><span class="hljs-variable">$m</span></span><span>) </span><span><span class="hljs-keyword">use</span></span><span> ($</span><span><span class="hljs-title">data</span></span><span>) {
    </span><span><span class="hljs-title">return</span></span><span> $</span><span><span class="hljs-title">data</span></span><span>[$</span><span><span class="hljs-title">m</span></span><span>[1]] ?? $</span><span><span class="hljs-title">m</span></span><span>[0];
}, </span><span><span class="hljs-variable">$template</span></span><span>);
</span><span><span class="hljs-comment">// Hi Alice, your order 42 is shipped.</span></span><span>
</span></span>

8.4 မှ HTML <IMG> သို့ HTML သို့အမှတ်အသားပြုသည့်ရုပ်ပုံလွှာ

 <span><span><span class="hljs-variable">$md</span></span><span> = </span><span><span class="hljs-string">'![alt text](/img/logo.png "Title")'</span></span><span>;
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(
    </span><span><span class="hljs-string">'/!\[([^\]]*)\]\((\S+)(?:\s+"([^"]*)")?\)/'</span></span><span>,
    </span><span><span class="hljs-string">'&lt;img src="$2" alt="$1" title="$3"&gt;'</span></span><span>,
    </span><span><span class="hljs-variable">$md</span></span><span>
);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$img</span></span><span>;
</span><span><span class="hljs-comment">// &lt;img src="/img/logo.png" alt="alt text" title="Title"&gt;</span></span><span>
</span></span>

8.5 စံသတ်မှတ်ထားသောကွက်လပ်များနှင့်ပုဒ်ဖြတ်ပုဒ်ရပ်အချက်များ

 <span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">"Hello,world!   PHP\tis\ngreat."</span></span><span>;
</span><span><span class="hljs-comment">// အာကာသထဲသို့မကွဲသောအဆက်မပြတ်အဖြူရောင်နေရာများကိုချုံ့ပါ</span></span><span>
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/[^\S\r\n]+/'</span></span><span>, </span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
</span><span><span class="hljs-comment">// တရုတ်ကော်မာကိုအင်္ဂလိပ်ကော်မာနှင့်အစားထိုး။ နေရာများထည့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/,/u'</span></span><span>, </span><span><span class="hljs-string">', '</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$text</span></span><span>; </span><span><span class="hljs-comment">// Hello, world! PHP is great.</span></span><span>
</span></span>

8.6 ထုတ်ယူခြင်းနှင့်ပြန်လည်ဖွဲ့စည်းခြင်း (log field reartrangement)

 <span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-string">'2025-08-25 14:03:22 [INFO] user=alice ip=203.0.113.9'</span></span><span>;
</span><span><span class="hljs-variable">$fmt</span></span><span>  = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(
    </span><span><span class="hljs-string">'/^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2}) \[(\w+)\] user=(\w+) ip=([\d.]+)$/'</span></span><span>,
    </span><span><span class="hljs-string">'[$3][$1T$2Z] $4@$5'</span></span><span>,
    </span><span><span class="hljs-variable">$line</span></span><span>
);
</span><span><span class="hljs-comment">// [INFO][2025-08-25T14:03:22Z] [email protected]</span></span><span>
</span></span>

9 ။ စွမ်းဆောင်ရည်နှင့်ယုံကြည်စိတ်ချရအကြံပြုချက်များ

  1. ဦး စားပေးသတ်မှတ်ချက်သည်တိကျသောနှင့်ယေဘူယျအားဖြင့် - ယေဘူယျအားဖြင့် ဇာတ်ကောင်အတန်းများသည်ဖြစ်နိုင်သမျှရှောင်ရှားရန်တတ်နိုင်သမျှကျဉ်းမြောင်းသည် ။ * အလွဲသုံးစားမှု။ လိုအပ်ပါကပျင်းရိသော quantifiers များသို့မဟုတ်ရှာဖွေခြင်းကိုသုံးပါ။

  2. မိတ္တူကူးခြင်း (။ +) + (။ *) {M *) {M,) သည်အလွန်ပေါက်ကွဲခြင်း, နယ်နိမိတ်များကိုရှင်းလင်းနိုင်ပါက "မြွေ" ကိုမသုံးပါနှင့်။

  3. U Modifier ကိုသုံးပါ ။ စာသားတွင်စာသားများပါ 0 င်သည့်စာလုံးများ (တရုတ် / emoji) ပါ 0 င်သည့်အခါ၎င်းကိုထည့်သွင်းရမည်,

  4. / e အစားပြန်လည်ခေါ်ဆိုမှု - တွက်ချက်ရန်လိုအပ်သည့်အစားထိုးခြင်းကို preg_replace_callback () ဖြင့်အသုံးပြုလိမ့်မည်။

  5. Control $ ကန့်သတ်ချက် - ပထမပွဲကိုသင်အစားထိုးချင်ရင် $ က န့် သတ်ချက်ကိုသတ်မှတ်ပါ။

  6. စာရင်းအင်းများနှင့်စမ်းသပ်မှုများ - အစားထိုးအရေအတွက်တိုးများစုဆောင်းရန် $ ရေတွက်ခြင်း , နယ်နိမိတ်အသုံးပြုမှုကိုဖုံးအုပ်ရန်အဓိကပုံစံများအတွက်ယူနစ်စမ်းသပ်မှုများကိုရေးပါ။

  7. Precompilation / cache : PHP တွင် PCR အတွက်အချို့သော cache တစ်ခုရှိသည်။ သို့သော်ကြိမ်နှုန်းမြင့်မားသောလမ်းကြောင်းများအပေါ်တွင် loops များတွင်အမျိုးမျိုးသောပုံစံများကိုတည်ဆောက်ခြင်းကိုရှောင်ကြဉ်ပါ။

10 ။ အမှားပြင်ဆင်ခြင်းနှင့် debugging

  • မျိုးပွား minimize : ရှည်လျားသော mode ကိုဖြုတ်။ အစိတ်အပိုင်းမှအစိတ်အပိုင်းများကိုစစ်ဆေးပါ။

  • Readability : "မှတ်ချက်ချ" ပုံစံကိုရေးရန် X ကိုပြုပြင်မွမ်းမံကိုသုံးပါ။

 <span><span><span class="hljs-variable">$pattern</span></span><span> = <span class="hljs-string">'/
    ^\s*              # အစအ ဦး မှာအလွတ်ခွင့်ပြုခဲ့ပါသည်
    (?P&lt;key&gt;\w+)      # သော့
    \s*=\s*
    (?P&lt;val&gt;.+?)      # အဘိုး(ပြတ်သွင်း)
    \s*$
/x'</span>;
</span></span>
  • အဝေးမှလွတ်မြောက်ရန် - PHP strings တွင် Elsu သည်နှစ်ကြိမ်စဉ်းစားသင့်သည် (ဥပမာ, "\ d" နှင့် \\ d တို့အကြားခြားနားချက်ကိုဆိုလိုသည်။

11 ။ အသုံးများသော "ဓားများ" စာရင်း

  • ပထမ ဦး ဆုံးပွဲစဉ်ကိုသာအစားထိုးပါPreg_replace ($ P, $ p, $, $ s, 1, 1, $ ရေတွက်);

  • script tags များကိုလုံခြုံစွာဖယ်ရှားပါPreg_replace ('# <script \ b [^>] * ။ *? </ script> #is', ',

  • URL တွင် Query Query ကိုအမည်ပြောင်းခြင်း - ပွဲ ([? &]) အဟောင်း = ([^ & #] *)$ 1new = $ 1 → $ 1 → $ 1 → $ 1 → $ 1 (^ & #] *)

  • Insert comma in a thousandth of value (simple value): preg_replace('/\B(?=(\d{3})+(?!\d))/', ',', $n);

  • အလွတ်အလွတ်လိုင်းချုံ့ : Preg_replace (/ (\ R) \ s * (\ R) / '/', "$ 1 $ 2", $ 1 ",

  • မမြင်ရသောဇာတ်ကောင်များကိုဖယ်ရှားပါPreg_replace ('/ [\ x00- \ x1f \ x7f] /' ',', $ s),

  • Hump ​​သည် preg_replace ('/ (? <!) [az] /' az] / '' / '' / '' / '' / '' / '' / '' / '' / '' / '' / '' / '' / '' / 'az] /

12 ။ ပြည့်စုံသောဥပမာ - Log Desensitization + စနစ်တကျ output ကို

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$log</span></span><span> = <span class="hljs-string">&lt;&lt;&lt;LOG
[2025-08-25 10:00:01] user=john phone=13812345678 [email protected]
[2025-08-25 10:05:09] user=သစ်တော phone=13987654321 [email protected]
LOG</span>;

</span><span><span class="hljs-comment">// 1) အခြေခံ DesensItization:မိုဘိုင်းဖုန်းနံပါတ်အလယ်တွင်လူလေးယောက်သည်ကြယ်များကိုကစားနိုင်သည်、အီးမေးလ်သုံးစွဲသူအမည်၏ပထမဆုံးဇာတ်ကောင်</span></span><span>
</span><span><span class="hljs-variable">$log</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/(\b1\d{2})\d{4}(\d{4}\b)/'</span></span><span>, </span><span><span class="hljs-string">'$1****$2'</span></span><span>, </span><span><span class="hljs-variable">$log</span></span><span>);
</span><span><span class="hljs-variable">$log</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/(?&lt;=\b)[A-Za-z0-9._%+-](?:[A-Za-z0-9._%+-]?)+(?=@)/'</span></span><span>, </span><span><span class="hljs-string">'*'</span></span><span>, </span><span><span class="hljs-variable">$log</span></span><span>);

</span><span><span class="hljs-comment">// 2) စနစ်တကျပြန်ရေး:ကူးပြောင်း CSV အိုကေ</span></span><span>
</span><span><span class="hljs-variable">$csv</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(
    </span><span><span class="hljs-string">'/^\[(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})\]\s+user=([^\s]+)\s+phone=([^\s]+)\s+email=([^\s]+)$/mu'</span></span><span>,
    </span><span><span class="hljs-string">'$1,$2,$3,$4,$5'</span></span><span>,
    </span><span><span class="hljs-variable">$log</span></span><span>
);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$csv</span></span><span>;
<span class="hljs-comment">/*
2025-08-25,10:00:01,john,138****5678,j*</span></span><span><span class="hljs-doctag">@example</span></span><span>.com
2025-08-25,10:05:09,သစ်တော,139****4321,l*</span><span><span class="hljs-doctag">@example</span></span><span>.cn
*/
</span></span>

ကောက်ချက်

Preg_replace () ၏စွမ်းအားသည် " သင်ရှာဖွေနေသည့်ပုံစံကိုအတိအကျဖော်ပြရန် နှင့်သင်ကြည့်ရှုရန်လိုအပ်သည့်အရာများကိုပြန်လည်ရေးရန်" ဖော်ပြပါ။ ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ပြုပြင်မွမ်းမံသူများကိုဖမ်းယူခြင်းဖြင့်အုပ်စုဖွဲ့ခြင်းနှင့်ရှေ့နှင့်နောက်ကျောရှာဖွေမှုများကိုကောင်းစွာအသုံးပြုခြင်းနှင့် computeback များကိုအသုံးပြုခြင်းအားဖြင့်ကွန်ပျူတာများကိုနေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်သန့်ရှင်းရေးမှစာသားများကိုအလွယ်တကူဖြည့်စွက်နိုင်သည်။ ပိုမိုသေးငယ်သောဥပမာများကိုရေးပါ, နယ်နိမိတ်စစ်ဆေးမှုများကိုပိုမိုပြုလုပ်ပါ။