PHP රෙගුලර් ප්රකාශනවල තුළ [ ] ඇතුළත යටිකුරින් යෙදෙන අයුරු
යටිකුර - ඇතුළත විශේෂ සංකේතයක් []
(නමුත් පිටත - නොවේ). ඔබට යටිකුර සංකේතයක් ලෙසම අවශ්ය නම් - එය තබන්න
එවැනි ස්ථානයක, එය කණ්ඩායමක වෙන්කර හඳුනාගත් ස්ථානයක් ලෙස නොසලකනු ඇත.
මෙය වැදගත් වන්නේ ඇයි: ඔබට එය දැනීමෙන් තොරවම අකුරු කණ්ඩායමක් සෑදිය හැකිය.
උදාහරණයක් ලෙස, මේ ආකාරයට - [:-@] - ඔබ සිතන්නේ
කොලොන්, යටිකුර සහ @ ලකුණ තෝරන බව, නමුත් ඇත්ත වශයෙන්ම
: සහ @ අතර ඇති අකුරු කණ්ඩායමක් ලැබේ.
මෙම කණ්ඩායමට ඇතුළත් වන්නේ පහත සංකේත වේ: :, ;, ?,
<, =, >.
ඒවා කොහෙන්ද ආවේ? ASCII වගුවෙන් - කොලොන් වලට @ ලකුණට වඩා අඩු අංකයක් ඇත - එබැවින් කණ්ඩායමක් ලැබේ. එනම් සියලුම කණ්ඩායම් ASCII වගුව අනුව ලැබේ (අවශ්ය නම් මෙය භාවිතා කළ හැකිය).
මෙය සමඟ කෙසේ සටන් කරන්නද: යටිකුර සංකේතය තබන්න
එවැනි ස්ථානයක, එය කණ්ඩායමක සංකේතයක් ලෙස නිසැකවම නොසැලකෙනු ඇත,
උදාහරණයක් ලෙස, ආරම්භයේ හෝ අවසානයේ
(එනම් [ ට පසුව හෝ ] ට පෙර).
යටිකුර escape කිරීමටද හැකිය - එවිට
එය ස්ථානය නොසලකා ස්වයං අර්ථය දක්වයි.
උදාහරණයක් ලෙස, [:-@] වෙනුවට ලියන්න
[:\-@] - දැන් කණ්ඩායමක් නොමැත, නමුත්
සංකේත තුනක් ඇත - කොලොන්, යටිකුර සහ @ ලකුණ.
උදාහරණය
පහත උදාහරණයේ සෙවුම් රටාව මෙසේය:
අංකය 1, පසුව 'a'
සිට 'z' දක්වා අකුර, පසුව අංකය 2:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[a-z]2#', '!', $str);
?>
එහි ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! 1-2 ! !'
උදාහරණය
දැන් අපි යටිකුර escape කරමු. එහි ප්රතිඵලයක් ලෙස
සෙවුම් රටාව මෙසේය: අංකය 1, පසුව
අකුර 'a', හෝ යටිකුර, හෝ අකුර 'z',
පසුව අංකය 2:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[a\-z]2#', '!', $str);
?>
එහි ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! ! 1c2 !'
උදාහරණය
යටිකුර escape නොකර එය සරලව මාරු කළ හැකිය:
<?php
$str = '1a2 1-2 1c2 1z2';
$res = preg_replace('#1[az-]2#', '!', $str);
?>
එහි ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! ! 1c2 !'
උදාහරණය
පහත උදාහරණයේ සෙවුම් රටාව මෙසේය:
පළමු සංකේතය - එය කුඩා අකුරු හෝ
යටිකුර '-', පසුව අකුරු දෙකක් 'x':
<?php
$str = 'axx Axx -xx @xx';
$res = preg_replace('#[a-z-]xx#', '!', $str);
?>
එහි ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! Axx ! @xx'
උදාහරණය
පහත උදාහරණයේ සෙවුම් රටාව මෙසේය:
පළමු සංකේතය - එය කුඩා, විශාල
අකුරු හෝ යටිකුර '-', පසුව අකුරු දෙකක්
'x':
<?php
$str = 'axx Axx -xx @xx';
$res = preg_replace('#[a-zA-Z-]xx#', '!', $str);
?>
එහි ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! ! ! @xx'
උදාහරණය
යටිකුර කණ්ඩායම් දෙකක් අතර තැබිය හැකිය - එහිදී එය නිසැකවම තවත් කණ්ඩායමක් නොසාදනු ඇත:
<?php
$str = 'axx 9xx -xx @xx';
$res = preg_replace('#[a-z-0-9]xx#', '!', $str);
?>
එහි ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! ! ! @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'.