PHP රීජෙක්ස් හි 'හෝ' විධානය
මෙම පාඩමෙන් අපි
| විධානය පිළිබඳව විමසා බලමු, එය
[] විධානයට සාපේක්ෂව බලවත්
OR (හෝ) අනුවාදයකි. මෙම විධානය
රීජෙක්ස් (regex) රටාව කොටස් කිහිපයකට
වෙන් කිරීමට ඉඩ සලසයි.
මෙහිදී සෙවුම් වස්තුව රීජෙක්ස් රටාවේ එක්
කොටසකට හෝ අනෙක් කොටසට ගැලපේ. අපි
උදාහරණ බලමු.
උදාහරණය
මෙම උදාහරණයේ සෙවුම් රටාව මෙසේය: 'a'
අකුර තුන් වතාවක් හෝ 'b' අකුර තුන් වතාවක්:
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියනු ලැබේ:
'! ! abb'
උදාහරණය
මෙම උදාහරණයේ සෙවුම් රටාව මෙසේය: 'a'
අකුර තුන් වතාවක් හෝ 'b' අකුර 1
වරක් හෝ ඊට වැඩි ගණනක්:
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියනු ලැබේ:
'! ! ! ! axx'
උදාහරණය
මෙම උදාහරණයේ සෙවුම් රටාව මෙසේය: එක් අකුරක් හෝ වැඩි ගණනක් හෝ ඉලක්කම් තුනක්:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියනු ලැබේ:
'! ! ! 1 12 !'
උදාහරණය
සිරස් ඉරින් රීජෙක්ස් රටාව කොටස් දෙකකට මිසක් ඕනෑම ගණනකට බෙදිය හැකිය:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියනු ලැබේ:
'! ! ! ddd'
උදාහරණය
සිරස් ඉර වරහන් තුළ පවතින්නේ නම්,
'හෝ' විධානය ක්රියාත්මක වන්නේ එම
වරහන් තුළ පමණි. උදාහරණයක් ලෙස, පහත
රටාවට ගැලපෙන තන්තු සොයමු: ආරම්භයේ
'a', හෝ 'b' එක් වරක් හෝ
වැඩි ගණනක් පවතින අතර, ඊට පසුව
'x' අකුර දෙකක්:
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියනු ලැබේ:
'! ! ! exx'
ප්රායෝගික ගැටළු
තන්තුවක් ලබා දී ඇත:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
රීජෙක්ස් රටාවක් ලියන්න, එය පහත
රටාවට ගැලපෙන තන්තු සොයා ගනී: කෙළවරේ
'a' අකුරු පවතින අතර, ඒවායේ
මැද - හෝ 'e' අකුර ඕනෑම ගණනක්
හෝ 'x' අකුර ඕනෑම ගණනක්.
තන්තුවක් ලබා දී ඇත:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
රීජෙක්ස් රටාවක් ලියන්න, එය පහත
රටාවට ගැලපෙන තන්තු සොයා ගනී: කෙළවරේ
'a' අකුරු පවතින අතර, ඒවායේ
මැද - හෝ 'e' අකුර දෙවරක්
හෝ 'x' අකුර ඕනෑම ගණනක්.