Python හි නිත්ය ප්රකාශන හැඳින්වීම
නිත්ය ප්රකාශන යනු සංකීර්ණ සෙවුම් සහ ප්රතිස්ථාපන (හෝ සරල සෙවුම්) සඳහා වූ උපදෙස් වේ. ඒවා ඉතා සිත්ගන්නාසුලු දේවල් කිරීමට ඉඩ සලසයි, නමුත්, අවාසනාවට, ඉගෙන ගැනීමට තරමක් දුෂ්කර ය.
Python හි නිත්ය ප්රකාශන සමඟ වැඩ කිරීම ආරම්භ කිරීම සඳහා, අපි විශේෂ ඒකකය re ආයාත කළ යුතුය:
import re
ඒකකය re හි නිත්ය ප්රකාශ සමඟ වැඩ කිරීම සඳහා අරමුණු කරන ලද ක්රම අඩංගු වේ. නිත්ය ප්රකාශනයක් යනු උපදෙස් සමූහයක් වන අතර සංකේත වර්ග දෙකකින් සමන්විත වේ: ඒවායේම අර්ථය දක්වන සංකේත සහ විශේෂ සංකේත ලෙස හැඳින්වෙන උපදෙස්-සංකේත වලින්.
නිත්ය ප්රකාශන හඳුනාගැනීම හොඳම ආරම්භ කරන්නේ sub ක්රමයේ උදාහරණයක් මතය, එය අනුලකුණුවල ප්රතිස්ථාපන සඳහා භාවිතා වේ. පළමු පරාමිතිය ලෙස ක්රමය ගන්නේ මාරු කළ යුතු දේ, දෙවන පරාමිතිය ලෙස ගන්නේ කුමක් දැයි මාරු කරන්න. තෙවන පරාමිතියේදී අපි අනුලකුණ සඳහන් කරමු, එහි ප්රතිස්ථාපන සිදු කළ යුතුය. හතරවන විකල්ප පරාමිතියේදී අපි ප්රතිස්ථාපන සංඛ්යාව නියම කරමු. මෙම ක්රමය භාවිතා කරන සරලම ප්රතිස්ථාපනය පෙනෙන්නේ මේ ආකාරයට ය:
res = re.sub('a', '!', 'bab')
print(res) # prints 'b!b'
ඔබ දුටුවාක් මෙන්, නිත්ය ප්රකාශනයක අකුරු ඒවායේම අර්ථය දක්වයි. ඉලක්කම් සඳහා ද එයම අදාළ වේ. අපි ඉලක්කම 2 ! සමඟ ප්රතිස්ථාපනය කරමු:
res = re.sub('2', '!', '12abc3')
print(res) # prints '1!abc3'
නමුත් කාලය යනු විශේෂ සංකේතයක් වන අතර එය ඕනෑම සංකේතයක් දක්වයි. පහත උදාහරණයේ දී, අපි උපස්තරය මේ ආකෘතිය අනුව සොයා ගනිමු: අකුර 'x', ඉන්පසු ඕනෑම සංකේතයක්, ඉන්පසු නැවතත් අකුර 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # prints '! eee'
අනුලකුණක් ලබා දී ඇත:
txt = 'ahb acb aeb aeeb adcb axeb'
ආකෘතිය අනුව 'ahb', 'acb', 'aeb' යන අනුලකුණු සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න: අකුර 'a', ඕනෑම සංකේතයක්, අකුර 'b'.
අනුලකුණක් ලබා දී ඇත:
txt = 'aba aca aea abba adca abea'
ආකෘතිය අනුව 'abba', 'adca', 'abea' යන අනුලකුණු සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න: අකුර 'a', 2 ඕනෑම සංකේත, අකුර 'a'.
අනුලකුණක් ලබා දී ඇත:
txt = 'aba aca aea abba adca abea'
'adca' අල්ලා නොගෙන, 'abba' සහ 'abea' යන අනුලකුණු සොයා ගන්නා නිත්ය ප්රකාශනයක් ලියන්න.