අක්ෂර පුනරාවර්තන ක්රියාකරු
අපට සංකේතයක් නිශ්චිත ගණනක් පුනරාවර්තනය වන බව දැක්වීමට අවශ්ය වන අවස්ථා තිබේ.
පුනරාවර්තනයේ නිශ්චිත සංඛ්යාව අප දන්නේ නම්,
එය වරකට වඩා ලිවීමෙන් එය සරලව ලිවිය හැකිය
- #aaaa#. නමුත් අපට මෙසේ කිව යුතු නම් කුමක් කළ යුතුද:
එක් වරක් හෝ ඊට වැඩි වාර ගණනක් පුනරාවර්තනය කරන්න?
මේ සඳහා පවතින්නේ (quantifiers)
පුනරාවර්තන ක්රියාකරු: ඇග + (එක් වරක් හෝ ඊට වැඩි),
තරු ලකුණ * (ශුන්ය හෝ ඊට වැඩි වාර) සහ
ප්රශ්න ලකුණ ? (ශුන්ය හෝ එක් වරක්). මෙම
ක්රියාකරු ඒවාට පෙර පවතින සංකේතය මත ක්රියා කරයි.
අපි මෙම ක්රියාකරුවන්ගේ ක්රියාකාරිත්වය උදාහරණ මගින් බලමු.
උදාහරණය
අක්ෂරය
'x', අක්ෂරය 'a' එක් වරක් හෝ ඊට වැඩි වාර,
අක්ෂරය 'x' යන රටාවට අනුව සියලු උපතන්යාස සොයා ගනිමු:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'xx ! ! ! xbx'
උදාහරණය
අක්ෂරය
'x', අක්ෂරය 'a' ශුන්ය හෝ ඊට වැඩි වාර,
අක්ෂරය 'x' යන රටාවට අනුව සියලු උපතන්යාස සොයා ගනිමු:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! ! ! ! xbx'
උදාහරණය
අක්ෂරය
'x', අක්ෂරය 'a' ශුන්ය හෝ එක් වරක්,
අක්ෂරය 'x' යන රටාවට අනුව සියලු උපතන්යාස සොයා ගනිමු:
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
ප්රතිඵලයක් ලෙස විචල්යයට පහත දේ ලියා ඇත:
'! ! xaax xbx'
ප්රායෝගික කාර්යයන්
තන්යාසය ලබා දී ඇත:
<?php
$str = 'aa aba abba abbba abca abea';
?>
අක්ෂරය 'a', අක්ෂරය 'b'
එක් වරක් හෝ ඊට වැඩි වාර, අක්ෂරය 'a'
යන රටාවට අනුව තන්යාස සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න.
තන්යාසය ලබා දී ඇත:
<?php
$str = 'aa aba abba abbba abca abea';
?>
අක්ෂරය 'a', අක්ෂරය 'b'
ශුන්ය හෝ ඊට වැඩි වාර, අක්ෂරය 'a'
යන රටාවට අනුව තන්යාස සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න.
තන්යාසය ලබා දී ඇත:
<?php
$str = 'aa aba abba abbba abca abea';
?>
අක්ෂරය 'a', අක්ෂරය 'b'
එක් වරක් හෝ කිසි විටෙකත් නොවේ, අක්ෂරය 'a'
යන රටාවට අනුව තන්යාස සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න.
තන්යාසය ලබා දී ඇත:
<?php
$str = 'aa aba abba abbba abca abea';
?>
'aa', 'aba', 'abba',
'abbba' යන තන්යාස සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න,
'abca' සහ 'abea' අල්ලා නොගෙන.