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