ரெஜெக்ஸின் முழு வடிவம் வழக்கமான வெளிப்பாடு ஆகும். எந்தவொரு நிரலாக்க மொழியிலும் இது ஒரு முக்கிய அம்சமாகும். இது ஒரு சரம் வடிவமாகும், இது ஒரு சர மதிப்பில் உள்ள சரங்களை பொருத்த, தேட அல்லது மாற்ற பயன்படுகிறது. பைத்தானின் “ரீ” தொகுதியைப் பயன்படுத்தி பைதான் ஸ்கிரிப்ட்டில் ரெஜெக்ஸ் பேட்டர்னைப் பயன்படுத்தலாம். இந்த தொகுதி பல்வேறு சரம் செயல்பாடுகளை செய்ய பல வகையான செயல்பாடுகளை கொண்டுள்ளது. பணிகளைத் தேட அல்லது மாற்றுவதற்கு ரெஜெக்ஸ் வடிவங்களை வரையறுக்க வெவ்வேறு மெட்டாக்ராக்டர்கள் மற்றும் சிறப்புத் தொடர்கள் பயன்படுத்தப்படுகின்றன. பைதான் ஸ்கிரிப்ட்டில் பொதுவாகப் பயன்படுத்தப்படும் சில மெட்டாக்ராக்டர்கள், சிறப்புத் தொடர்கள் மற்றும் ரீஜெக்ஸ் முறைகளைப் பயன்படுத்துவதன் நோக்கங்கள் இந்த டுடோரியலில் காட்டப்பட்டுள்ளன.
ரெஜெக்ஸில் பொதுவாகப் பயன்படுத்தப்படும் சில மெட்டாக்ராக்டர்கள்:
பாத்திரங்கள் | நோக்கம் |
'+' | ஒரு சரத்தில் ஒரு குறிப்பிட்ட எழுத்தின் ஒன்று அல்லது அதற்கு மேற்பட்ட நிகழ்வுகளைப் பொருத்த இது பயன்படுகிறது. |
'*' | ஒரு சரத்தில் ஒரு குறிப்பிட்ட எழுத்தின் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட நிகழ்வுகளைப் பொருத்த இது பயன்படுகிறது. |
'?' | ஒரு சரத்தில் ஒரு குறிப்பிட்ட எழுத்தின் பூஜ்ஜியம் அல்லது ஒரு நிகழ்வைப் பொருத்த இது பயன்படுகிறது. |
'^' | சரத்தின் தொடக்கத்தில் உள்ள குறிப்பிட்ட எழுத்து அல்லது சரத்தை பொருத்த இது பயன்படுகிறது. |
'$' | சரத்தின் முடிவில் குறிப்பிட்ட எழுத்து அல்லது சரத்தை பொருத்த இது பயன்படுகிறது. |
'|' | ஒரு சரத்தில் உள்ள பல சரங்களில் ஏதேனும் ஒன்றைப் பொருத்த இது பயன்படுகிறது. இது OR தர்க்கம் போல் செயல்படுகிறது. |
‘[]’ | எழுத்துகளின் வரம்பைப் பொருத்த இது பயன்படுகிறது. |
'{}' | இது குறிப்பிட்ட எண்ணிக்கையிலான எழுத்துக்களைப் பொருத்தப் பயன்படுகிறது. |
ரெஜெக்ஸில் பொதுவாகப் பயன்படுத்தப்படும் சில சிறப்புத் தொடர்கள்:
தொடர்கள் | நோக்கம் |
'\A' | சரத்தின் தொடக்கத்தில் உள்ள குறிப்பிட்ட எழுத்தைப் பொருத்த இது பயன்படுகிறது. இது '^' எழுத்து போல் செயல்படுகிறது. |
‘\b’, ‘\B’ | சரத்தின் தொடக்கத்திலோ அல்லது முடிவிலோ குறிப்பிட்ட எழுத்து அல்லது வார்த்தையைக் கொண்டிருக்கும் சரத்துடன் பொருத்துவதற்கு “\b” பயன்படுத்தப்படுகிறது. '\B' ஆனது '\b' க்கு எதிரே செயல்படுகிறது. |
'\DD' | “[0-9]” போன்ற சரத்தில் உள்ள தசம எண்ணுடன் பொருந்த “\d” பயன்படுத்தப்படுகிறது. '\D' ஆனது '\d' க்கு எதிராக வேலை செய்கிறது. |
‘\s’, ‘\S’ | “[\n\t\r\v]” போன்ற சரத்தில் உள்ள இடைவெளியுடன் பொருந்த “\s” பயன்படுத்தப்படுகிறது. '\S' ஆனது '\s' க்கு எதிராக வேலை செய்கிறது. |
‘\w’, ‘\W’ | சரத்தில் உள்ள அகரவரிசை மற்றும் எண் எழுத்துக்களைப் பொருத்த “\w” பயன்படுத்தப்படுகிறது. '\W' ஆனது '\w' க்கு நேர் எதிராக செயல்படுகிறது. |
'\உடன்' | சரத்தின் முடிவில் உள்ள குறிப்பிட்ட எழுத்தைப் பொருத்த இது பயன்படுகிறது. இது '$' எழுத்து போல் வேலை செய்கிறது. |
எடுத்துக்காட்டு 1: மேட்ச்() செயல்பாட்டைப் பயன்படுத்தி சரத்தை பொருத்தவும்
சரத்தின் தொடக்கத்தில் உள்ள ரீஜெக்ஸ் பேட்டர்னை பொருத்துவதற்கு மேட்ச்() செயல்பாடு பயன்படுத்தப்படுகிறது. இந்த செயல்பாட்டின் தொடரியல் பின்வருமாறு கொடுக்கப்பட்டுள்ளது:
தொடரியல்:
மறு போட்டி ( முறை, சரம், கொடிகள் = 0 )
இங்கே, ரீஜெக்ஸ் வடிவத்தை வரையறுக்க முதல் வாதம் பயன்படுத்தப்படுகிறது. முக்கிய சரத்தை வரையறுக்க இரண்டாவது வாதம் பயன்படுத்தப்படுகிறது. மூன்றாவது வாதம் விருப்பமானது மற்றும் பல்வேறு வகையான கொடிகளை வரையறுக்கப் பயன்படுகிறது.
மேட்ச்() செயல்பாட்டைப் பயன்படுத்தி வரையறுக்கப்பட்ட சரத்துடன் ரீஜெக்ஸ் வடிவத்துடன் பொருந்தக்கூடிய பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும். முதலில், ஒரு வரையறுக்கப்பட்ட ரீஜெக்ஸ் முறை பொருத்த பயன்படுத்தப்படுகிறது. அடுத்து, ஒரு தேடல் வார்த்தை பயனரிடமிருந்து எடுக்கப்பட்டு, சரம் மதிப்புடன் பொருந்த, ரீஜெக்ஸ் பேட்டர்னாகப் பயன்படுத்தப்படுகிறது. ஏதேனும் பொருத்தம் காணப்பட்டால், தேடல் வார்த்தை அச்சிடப்படும். இல்லையெனில், 'பொருந்தும் மதிப்பு இல்லை' என்ற சரம் அச்சிடப்படும்.
#தேவையான தொகுதியை இறக்குமதி செய்யவும்மீண்டும் இறக்குமதி
#பொருந்தும் முடிவை அச்சிடுவதற்கான செயல்பாட்டை வரையறுக்கவும்
def matchString ( ) :
#மேட்ச்() செயல்பாட்டின் ரிட்டர்ன் மதிப்பைச் சரிபார்க்கவும்
என்றால் சேர்த்து ! = இல்லை:
அச்சு ( ''' + mat.group ( ) + '' என்பது '' இல் காணப்படுகிறது + strValue + ''' )
வேறு:
அச்சு ( 'பொருந்தும் மதிப்பு இல்லை.' )
# சரத்தின் மதிப்பை வரையறுக்கவும்
strValue = 'முதலில் முதலில் வெளியே.'
#முறையின் அடிப்படையில் சரத்தை பொருத்தவும்
பாய் = மறு போட்டி ( '^முதல்' , strValue )
#போட்டி முடிவை அச்சிட அழைப்பு செயல்பாடு
மேட்ச்ஸ்ட்ரிங் ( )
#தேடல் சரத்தை எடுக்கவும்
மதிப்பு = உள்ளீடு ( 'தேடல் மதிப்பை உள்ளிடவும்:' )
பாய் = மறு போட்டி ( inValue + , strValue )
#போட்டி முடிவை அச்சிட அழைப்பு செயல்பாடு
மேட்ச்ஸ்ட்ரிங் ( )
'முதல்' உள்ளீட்டு மதிப்புக்கு பின்வரும் வெளியீடு தோன்றும்:
எடுத்துக்காட்டு 2: Findall() செயல்பாட்டைப் பயன்படுத்தி சரத்தைக் கண்டறியவும்
Findall() செயல்பாடு முக்கிய சரத்தில் காணப்படும் அனைத்து பொருந்தக்கூடிய சொற்களையும் tuple ஆக வழங்க பயன்படுகிறது.
தொடரியல்:
re.findall ( முறை, சரம், கொடிகள் = 0 )
இங்கே, ரீஜெக்ஸ் வடிவத்தை வரையறுக்க முதல் வாதம் பயன்படுத்தப்படுகிறது. முக்கிய சரத்தை வரையறுக்க இரண்டாவது வாதம் பயன்படுத்தப்படுகிறது. மூன்றாவது வாதம் விருப்பமானது மற்றும் பல்வேறு வகையான கொடிகளை வரையறுக்கப் பயன்படுகிறது.
பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும், அது பயனரிடமிருந்து ஒரு முக்கிய சரம் மதிப்பையும் தேடல் சர மதிப்பையும் எடுக்கும். அடுத்து, முக்கிய சரத்தில் தேடல் வார்த்தையைக் கண்டறிய, ரீஜெக்ஸ் பேட்டர்னில் உள்ள தேடல் வார்த்தையைப் பயன்படுத்தவும். மொத்த பொருத்தங்களின் எண்ணிக்கை வெளியீட்டில் அச்சிடப்பட்டுள்ளது.
#தேவையான தொகுதியை இறக்குமதி செய்யவும்மீண்டும் இறக்குமதி
#ஒரு சரம் மதிப்பை எடுத்துக் கொள்ளுங்கள்
மதிப்பு = உள்ளீடு ( 'ஒரு சரத்தை உள்ளிடவும்:' )
#ஒரு தேடல் வார்த்தையை எடுத்துக் கொள்ளுங்கள்
srcValue = உள்ளீடு ( 'தேடல் வார்த்தையை உள்ளிடவும்:' )
#சரத்தில் வார்த்தையைத் தேடுங்கள்
srcResult = re.findall ( srcValue + '\in*' , மதிப்பு )
#தேடல் முடிவை அச்சிடவும்
அச்சு ( 'அந்த வார்த்தை '' + srcValue + '' சரத்தில் காணப்படுகிறது'
+ str ( மட்டுமே ( srcResult ) ) + 'நேரங்கள்.' )
வெளியீட்டின் படி, 'சாப்பிடு' என்ற தேடல் வார்த்தை 'நாங்கள் வாழ்வதற்காக சாப்பிடுகிறோம், சாப்பிடுவதற்காக வாழவில்லை' என்ற முக்கிய சரத்தில் இரண்டு முறை காணப்படுகிறது.
எடுத்துக்காட்டு 3: தேடல்() செயல்பாட்டைப் பயன்படுத்தி சரத்தைத் தேடுங்கள்
தேடல்() என்பது சரம் மதிப்பில் ஒரு குறிப்பிட்ட வடிவத்தைத் தேடுவதற்கான மற்றொரு செயல்பாடு ஆகும். இது போட்டி() மற்றும் findall() செயல்பாடுகளின் அதே வாதங்களைக் கொண்டுள்ளது. பயனரிடமிருந்து எடுக்கப்படும் சர மதிப்பில் “பைதான்” என்ற வார்த்தையைத் தேடும் பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும். உள்ளீட்டு மதிப்பில் தேடல் வார்த்தை இருந்தால், வெற்றிச் செய்தி அச்சிடப்படும். இல்லையெனில், தோல்வி செய்தி அச்சிடப்படும்.
#இறக்குமதி மறு தொகுதிமீண்டும் இறக்குமதி
#ஒரு சரம் மதிப்பை எடுத்துக் கொள்ளுங்கள்
மதிப்பு = உள்ளீடு ( 'ஒரு சரத்தை உள்ளிடவும்:' )
#குறிப்பிட்ட வார்த்தையை சர மதிப்பில் தேடவும்
srcResult = மறு தேடல் ( ஆர் 'பைதான்\w*' , மதிப்பு )
#தேடல் வார்த்தை கண்டுபிடிக்கப்பட்டதா இல்லையா என்பதை சரிபார்க்கவும்
என்றால் src முடிவு:
அச்சு ( ''' + srcResult.group ( ) + '' என்பது '' இல் காணப்படுகிறது + மதிப்பு + ''' )
வேறு:
அச்சு ( 'தேடல் சரம் கிடைக்கவில்லை.' )
வெளியீடு:
உள்ளீட்டு சரம் 'நான் பைதான் நிரலாக்கத்தை விரும்புகிறேன்' என்றால் பின்வரும் வெளியீடு தோன்றும்:
உள்ளீட்டு சரம் 'எனக்கு PHP நிரலாக்கத்தை விரும்புகிறேன்' எனில் பின்வரும் வெளியீடு தோன்றும்:
எடுத்துக்காட்டு 4: துணை() செயல்பாட்டைப் பயன்படுத்தி சரத்தை மாற்றவும்
துணை() செயல்பாடு ஒரு குறிப்பிட்ட சரத்தை வடிவத்தின் அடிப்படையில் தேடவும், அதை வேறு வார்த்தையுடன் மாற்றவும் பயன்படுகிறது. இந்த செயல்பாட்டின் தொடரியல் பின்வருமாறு கொடுக்கப்பட்டுள்ளது:
தொடரியல்:
re.sub ( முறை, மாற்று_சரம், முக்கிய_சரம் )
இந்தச் செயல்பாட்டின் முதல் வாதமானது பிரதான சரத்தில் குறிப்பிட்ட சரத்தைத் தேடப் பயன்படுத்தப்படும் வடிவத்தைக் கொண்டுள்ளது.
இந்த செயல்பாட்டின் இரண்டாவது வாதம் 'மாற்று' சர மதிப்பைக் கொண்டுள்ளது.
இந்த செயல்பாட்டின் மூன்றாவது வாதம் முக்கிய சரத்தைக் கொண்டுள்ளது.
முதல் வாதத்தின் அடிப்படையில் பிரதான சரத்தில் ஏதேனும் பொருந்தக்கூடிய சொல் இருந்தால், மாற்றப்பட்ட சரத்தை இந்த செயல்பாடு வழங்கும்.
சரத்தின் முடிவில் இரண்டு இலக்கங்களைத் தேடும் பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும். சரத்தின் முடிவில் இரண்டு இலக்கங்கள் இருந்தால், அந்த இலக்கங்கள் '$50' சரத்தால் மாற்றப்படும்.
#இறக்குமதி மறு தொகுதிமீண்டும் இறக்குமதி
#முக்கிய சரத்தை வரையறுக்கவும்
strValue = புத்தகத்தின் விலை 70
#தேடல் முறையை வரையறுக்கவும்
முறை = '[0-9]{2}'
#மாற்று மதிப்பை வரையறுக்கவும்
மாற்று மதிப்பு = '$50'
வடிவத்தின் அடிப்படையில் சரத்தை #தேடு மற்றும் மாற்றவும்
modified_strValue = re.sub ( முறை, மாற்று மதிப்பு, strValue )
#அசல் மற்றும் மாற்றியமைக்கப்பட்ட சர மதிப்புகளை அச்சிடவும்
அச்சு ( 'அசல் சரம்:' + strValue )
அச்சு ( 'மாற்றியமைக்கப்பட்ட சரம்:' + modified_strValue )
வெளியீடு:
பிரதான சரத்தின் முடிவில் 70 பேர் இருந்தனர். எனவே, 70 மாற்றப்பட்ட சரத்தில் $50 ஆல் மாற்றப்பட்டது.
எடுத்துக்காட்டு 5: Subn() செயல்பாட்டைப் பயன்படுத்தி சரத்தை மாற்றவும்
subn() செயல்பாடு sub() சார்பு போல் வேலை செய்கிறது, அது வெளியீட்டை tuple ஆக வழங்கும் தவிர, முதல் குறியீட்டில் மாற்றியமைக்கப்பட்ட மதிப்பும் இரண்டாவது குறியீட்டில் மொத்த பொருத்தங்களின் எண்ணிக்கையும் இருக்கும்.
subn() செயல்பாட்டைப் பயன்படுத்தி 'LinuxHint.com' சரத்தில் A முதல் L வரையிலான எழுத்துக்களைத் தேடும் பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும்:
#இறக்குமதி மறு தொகுதிமீண்டும் இறக்குமதி
#முக்கிய சரத்தை வரையறுக்கவும்
strValue = 'LinuxHint.com'
#தேடல் முறையை வரையறுக்கவும்
முறை = '[TO THE]'
#மாற்று மதிப்பை வரையறுக்கவும்
மாற்று மதிப்பு = '*'
வடிவத்தின் அடிப்படையில் சரத்தை #தேடு மற்றும் மாற்றவும்
modified_strValue = re.subn ( முறை, மாற்று மதிப்பு, strValue )
#சப்என்() இன் அசல் சரம் மற்றும் வெளியீட்டை அச்சிடவும்
அச்சு ( 'அசல் சரம்: \n ' + strValue )
அச்சு ( 'சப்என்() செயல்பாட்டின் வெளியீடு: ' )
அச்சு ( modified_strValue )
வெளியீடு:
பின்வரும் வெளியீட்டின் படி, 'L' மற்றும் 'H' எழுத்துகள் '*' எழுத்துகளால் மாற்றப்படுகின்றன.
எடுத்துக்காட்டு 6: ஸ்ப்ளிட்() செயல்பாட்டைப் பயன்படுத்தி சரத்தை பிரிக்கவும்
ரெஜெக்ஸ் வடிவத்தின் அடிப்படையில் பிரதான சரத்தை பல பகுதிகளாகப் பிரிக்க பிளவு() செயல்பாட்டைப் பயன்படுத்திய பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும்:
#இறக்குமதி மறு தொகுதிமீண்டும் இறக்குமதி
# சரத்தின் மதிப்பை வரையறுக்கவும்
strVal= 'ரூபா அக்தர்; நீரா சௌத்ரி; மஜருல் இஸ்லாம்'
#தரவைப் பிரிக்கப் பயன்படுத்தப்படும் வடிவத்தை வரையறுக்கவும்
முறை = '[^A-Za-z ]'
#ஒரு பட்டியலில் பிளவு மதிப்புகளை சேமிக்கவும்
பிளவு_முடிவு = மறு பிளவு ( முறை, strVal )
அச்சு ( 'பிளவு() செயல்பாட்டின் வெளியீடு:' )
அச்சு ( பிளவு_முடிவு )
வெளியீடு:
வெளியீட்டின் படி, ஸ்கிரிப்ட்டில் பயன்படுத்தப்படும் “[^A-Za-z ]” வடிவத்தின் அடிப்படையில் பிரதான சரம் மூன்று பகுதிகளாக பிரிக்கப்பட்டுள்ளது.
முடிவுரை
பொதுவாகப் பயன்படுத்தப்படும் மெட்டாக்ராக்டர்கள், வரம்புகள் மற்றும் பைதான் உள்ளமைக்கப்பட்ட செயல்பாடுகளின் நோக்கம், சரங்களைத் தேடுவதற்கும், மாற்றுவதற்கும், பிரிப்பதற்கும் எளிய பைதான் ஸ்கிரிப்ட்களைப் பயன்படுத்தி இந்த டுடோரியலில் காட்டப்பட்டுள்ளது.