Python regular expressions වල 'හෝ' command එක
'|' command එක, එය නිරූපණය කරන්නේ
[ ] command එකට සාපේක්ෂව වඩා බලවත්
'හෝ' අනුවාදයකි. මෙම command එක
regular expression එක කොටස් කිහිපයකට
වෙන් කිරීමට ඉඩ සලසයි. මෙම අවස්ථාවේදී,
සෙවුම් යෙදුමක් regular expression එකේ එක්
කොටසකට හෝ අනෙක් කොටසට ගැලපිය හැකිය.
අපි උදාහරණ බලමු.
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේය:
'a' අකුරු තුනක් හෝ
'b' අකුරු තුනක්:
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! abb'
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේය:
'a' අකුරු තුනක් හෝ
1 සිට
ඊට වැඩි 'b' අකුරු:
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! ! axx'
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේය: එකක් හෝ වැඩි අකුරු සංඛ්යාවක් හෝ ඉලක්කම් තුනක්:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! 1 12 !'
උදාහරණය
සිරස් තීරුව regular expression එක කොටස් දෙකකට නොව, ඕනෑම සංඛ්යාවක කොටස් වලට බෙදිය හැකිය:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! ddd'
උදාහරණය
සිරස් තීරුව වටකුරු වරහන් තුළ තිබේ නම්,
'හෝ' ක්රියාත්මක වන්නේ
එම වරහන් තුළ පමණි.
උදාහරණයක් ලෙස, අපි පහත නිර්මාණය අනුව
strings සොයා ගනිමු: ආරම්භයේ තිබෙන්නේ
'a', හෝ 'b' එකක් හෝ වැඩි
ප්රමාණයක් වරක්, පසුව
'x' අකුරු දෙකක්:
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! exx'
ප්රායෝගික ගැටළු
String එකක් ලබා දී ඇත:
txt = 'aeeea aeea aea axa axxa axxxa'
Regular expression එකක් ලියන්න, එය
නිර්මාණය අනුව strings සොයා ගනී:
කෙළවරේ අකුරු
'a', ඒවා අතර - හෝ
'e' අකුර ඕනෑම ගණනක් හෝ
'x' අකුර ඕනෑම ගණනක්.
String එකක් ලබා දී ඇත:
txt = 'aeeea aeea aea axa axxa axxxa'
Regular expression එකක් ලියන්න, එය
නිර්මාණය අනුව strings සොයා ගනී:
කෙළවරේ අකුරු
'a', ඒවා අතර - හෝ
'e' අකුර දෙවරක් හෝ
'x' අකුර ඕනෑම ගණනක්.