Python නිත්ය ප්රකාශන තුළ අක්ෂර කණ්ඩායම්
අක්ෂරවල සම්පූර්ණ කණ්ඩායම් වහාම තෝරා ගැනීමට ඉඩ සලසන විශේෂ
විධාන තිබේ. \d විධානයෙන් අදහස් වන්නේ 0 සිට
9 දක්වා ඉලක්කමයි. \w විධානයෙන් අදහස් කරන්නේ
ඉලක්කමක්, ලතින් අකුරක් හෝ යටි ඉරි ලකුණයි. \s විධානයෙන්
අදහස් වන්නේ හිස් තැනක් හෝ හිස් අකුරක්: හිස් තැන, පේළියක්
වෙනස් කිරීම, ටැබ් කිරීම. විශාල අකුරක් ලිවීමෙන් විධානයේ අගය
ප්රතිලෝම කළ හැක: උදාහරණයක් ලෙස, \d - ඉලක්කම නම්,
\D - ඉලක්කමක් නොවේ.
උදාහරණය
අපි සියලුම ඉලක්කම් සොයා ගනිමු:
txt = '1 12 123'
res = re.sub('\d', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! !! !!!'
උදාහරණය
පුනරාවර්තන මෙහෙයුම් විධාන-කණ්ඩායම් එක් සම්පූර්ණයක් ලෙස සලකයි,
එනම් කණ්ඩායම් කරන වරහන් අවශ්ය නැත. පහත උදාහරණයේ, සෙවුම්
නිර්මාණය මෙසේ පෙනේ: 0 සිට 9 දක්වා ඉලක්කම
එක් හෝ වැඩි වාර ගණනක්:
txt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! abc @@@'
උදාහරණය
පහත උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේ පෙනේ:
ඕනෑම දෙයක් එක් හෝ වැඩි වාර ගණනක්, නමුත් 0 සිට
9 දක්වා ඉලක්කමක් නොවේ:
txt = '123abc3@@'
res = re.sub('\D+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'123!3!'
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේ පෙනේ: හිස් අකුරක් එක් වරක්:
txt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'1!12!123!abc!@@@'
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේ පෙනේ:
හිස් අකුරක් නොවන අකුරක් එක් හෝ වැඩි වාර ගණනක්.
හිස් තැන් වලින් වෙන් වූ සියලුම උපදේශ '!' වෙත
ප්රතිස්ථාපනය වේ:
txt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! ! !'
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේ පෙනේ:
ඉලක්කමක් හෝ අකුරක් එක් හෝ වැඩි වාර ගණනක්.
ඉලක්කම් සහ අකුරු වලින් සමන්විත සියලුම උපදේශ '!' වෙත
ප්රතිස්ථාපනය වේ:
txt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'! ! ! ! @@@'
උදාහරණය
මෙම උදාහරණයේ, සෙවුම් නිර්මාණය මෙසේ පෙනේ:
ඉලක්කමක් නොවන සහ අකුරක් නොවන අකුරක් එක් හෝ වැඩි වාර ගණනක්.
මෙම නිර්වචනයට අනුව අපගේ නඩුවේ අයත් වන්නේ '@@@' සහ
සියලුම හිස් තැන් (ඒවා ද ඉලක්කම් හෝ අකුරු නොවේ යන කාරණය).
අවසානයේ එක් '!' ක් ඇති බව සැලකිල්ලට ගන්න - එය ' @@@'
දේශයට පරිවර්තනය විය - ඉදිරියෙන් හිස් තැනක් සමඟ:
txt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)
print(res)
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'1!12!123!Abc!'
ප්රායෝගික කාර්යයන්
දේශයක් ලබා දී ඇත:
txt = 'a1a a2a a3a a4a a5a aba aca'
නිත්ය ප්රකාශනයක් ලියන්න, එය එවැනි දේශ සොයා ගනී,
මෙහි කෙළවරේ 'a' අකුරු පිහිටා ඇත,
ඒවා අතර එක් ඉලක්කමක්.
දේශයක් ලබා දී ඇත:
txt = 'a1a a22a a333a a4444a a55555a aba aca'
නිත්ය ප්රකාශනයක් ලියන්න, එය එවැනි දේශ සොයා ගනී,
මෙහි කෙළවරේ 'a' අකුරු පිහිටා ඇත,
ඒවා අතර ඕනෑම ගණනක ඉලක්කම්.
දේශයක් ලබා දී ඇත:
txt = 'aa a1a a22a a333a a4444a a55555a aba aca'
නිත්ය ප්රකාශනයක් ලියන්න, එය එවැනි දේශ සොයා ගනී,
මෙහි කෙළවරේ 'a' අකුරු පිහිටා ඇත,
ඒවා අතර ඕනෑම ගණනක ඉලක්කම් (එනම්
ඉලක්කම් නොමැතිව, එනම් දේශය
'aa').
දේශයක් ලබා දී ඇත:
txt = 'avb a1b a2b a3b a4b a5b abb acb'
නිත්ය ප්රකාශනයක් ලියන්න, එය පහත වර්ගයේ දේශ
සොයා ගනී: කෙළවරේ අකුරු පිහිටා ඇත
'a' සහ 'b', ඒවා අතර -
අංකයක් හෝ හිස් තැනක් නොවේ.
දේශයක් ලබා දී ඇත:
txt = 'ave a#b a2b a$b a4b a5b a-b acb'
නිත්ය ප්රකාශනයක් ලියන්න, එය පහත වර්ගයේ දේශ
සොයා ගනී: කෙළවරේ අකුරු පිහිටා ඇත
'a' සහ 'b', ඒවා අතර -
අකුරක්, ඉලක්කමක් හෝ හිස් තැනක් නොවේ.
දේශයක් ලබා දී ඇත:
txt = 'ave a#a a2a a$a a4a a5a a-a aca'
නිත්ය ප්රකාශනයක් ලියන්න, එය සියලුම
හිස් තැන් '!' වෙත ප්රතිස්ථාපනය කරයි.