சொற்களைத் தவிர்த்து ரீஜெக்ஸைப் புரிந்துகொள்வது
வழக்கமான வெளிப்பாடுகள் உரை செயலாக்கம் மற்றும் வடிவ பொருத்தத்திற்கான ஒரு சக்திவாய்ந்த கருவியாகும். சிக்கலான தேடலைச் செய்யவும், சரங்களில் செயல்பாடுகளை எளிதாக மாற்றவும் அவை உங்களை அனுமதிக்கின்றன. இருப்பினும், குறிப்பிட்ட வார்த்தை இல்லாத வரிகளை பொருத்துவது போன்ற சில பணிகள் தந்திரமானதாக இருக்கும்.
ஒரு வார்த்தையைப் பொருத்துவதும், தேவையற்ற வரிகளை வடிகட்ட கூடுதல் கருவிகளைப் பயன்படுத்துவதும் பொதுவானது என்றாலும், வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி இதை நேரடியாக அடைய ஏதேனும் வழி இருக்கிறதா என்று நீங்கள் ஆச்சரியப்படலாம். நடைமுறை எடுத்துக்காட்டுகளைப் பயன்படுத்தி, ஒரு குறிப்பிட்ட வார்த்தையை உள்ளடக்காத வரிகளை எவ்வாறு பொருத்துவது என்பதை இந்த வழிகாட்டி ஆராய்கிறது.
கட்டளை | விளக்கம் |
---|---|
grep -v | ஒரு குறிப்பிட்ட சொல் அல்லது வடிவத்தைக் கொண்டிருக்கும் வரிகளை வடிகட்டுகிறது. |
re.search() | ஒரு சரத்திற்குள் ஒரு வடிவத்தைத் தேடுகிறது, 'hede' கொண்டிருக்கும் வரிகளை அடையாளம் காணப் பயன்படுகிறது. |
awk '!/pattern/' | கொடுக்கப்பட்ட வடிவத்துடன் பொருந்தாத வரிகளை அச்சிடுகிறது. |
split('\n') | ஒரு சரத்தை வரிகளின் வரிசையாகப் பிரிக்கிறது. |
strpos() | 'hede' ஐச் சரிபார்க்கப் பயன்படும் ஒரு சரத்தில் சப்ஸ்ட்ரிங் முதல் நிகழ்வின் நிலையைக் கண்டறியும். |
filter() | வழங்கப்பட்ட செயல்பாட்டின் மூலம் செயல்படுத்தப்பட்ட சோதனையில் தேர்ச்சி பெற்ற உறுப்புகளுடன் புதிய வரிசையை உருவாக்குகிறது. |
foreach() | வரிசை அல்லது கோப்பில் உள்ள ஒவ்வொரு உறுப்புக்கும் மீண்டும் மீண்டும் வருகிறது. |
ஸ்கிரிப்ட் செயல்பாடுகளை விளக்குதல்
வழங்கப்பட்ட ஸ்கிரிப்டுகள் வெவ்வேறு நிரலாக்க மொழிகள் மற்றும் கருவிகளைப் பயன்படுத்தி "ஹெட்" என்ற வார்த்தையைக் கொண்ட வரிகளை வடிகட்டுவதற்கான பல்வேறு வழிகளை நிரூபிக்கின்றன. தி grep -v ஷெல் ஸ்கிரிப்ட்டில் உள்ள கட்டளை பொருத்தத்தைத் தலைகீழாக மாற்றப் பயன்படுகிறது, அதாவது குறிப்பிட்ட வடிவத்தைக் கொண்ட எந்த வரியையும் அது விலக்கும். கட்டளை வரியிலிருந்து நேரடியாக தேவையற்ற வரிகளை வடிகட்ட இது ஒரு எளிய ஆனால் சக்திவாய்ந்த வழியாகும். பைதான் ஸ்கிரிப்ட் இதைப் பயன்படுத்துகிறது re.search() சொற்களைக் கொண்ட வரிகளை அடையாளம் காணும் செயல்பாடு, பின்னர் அவற்றை வடிகட்ட பட்டியல் புரிதலைப் பயன்படுத்துகிறது, விரும்பிய வெளியீட்டை அடைய தெளிவான மற்றும் படிக்கக்கூடிய அணுகுமுறையை வழங்குகிறது.
AWK ஸ்கிரிப்ட்டில், வெளிப்பாடு awk '!/pattern/' கொடுக்கப்பட்ட வடிவத்துடன் பொருந்தாத வரிகளை மட்டுமே அச்சிடப் பயன்படுகிறது. இந்த ஒன்-லைனர் உரை செயலாக்கத்திற்கு மிகவும் திறமையானது. ஜாவாஸ்கிரிப்ட் குறியீடு பயன்படுத்துகிறது split('\n') உள்ளீட்டை வரிகளாக உடைக்க மற்றும் filter() "ஹெட்" கொண்ட வரிகளை விலக்க. இறுதியாக, PHP ஸ்கிரிப்ட் பயன்படுத்துகிறது strpos() "ஹெட்" மற்றும் தி foreach() லூப் வரிகள் மூலம் மீண்டும் மீண்டும், வார்த்தை இல்லாதவற்றை மட்டும் அச்சிடுகிறது. ஒவ்வொரு ஸ்கிரிப்டும் ஒரே சிக்கலைத் தீர்க்க வெவ்வேறு முறைகளைக் காட்டுகிறது, சூழல் மற்றும் கருவிகளைப் பொறுத்து நெகிழ்வுத்தன்மையை வழங்குகிறது.
வடிகட்டி வரிகளுக்கு grep உடன் Regex ஐப் பயன்படுத்துதல்
ஷெல் ஸ்கிரிப்ட்
#!/bin/bash
# Script to filter lines that do not contain the word "hede"
input="input.txt"
# Using grep with a negative lookahead assertion
grep -v "hede" $input
வடிகட்டுதல் வரிகளுக்கான பைதான் ஸ்கிரிப்ட்
மலைப்பாம்பு
import re
# Read the input file
with open('input.txt', 'r') as file:
lines = file.readlines()
# Filter lines that do not contain the word 'hede'
filtered_lines = [line for line in lines if not re.search(r'\bhede\b', line)]
# Print the filtered lines
for line in filtered_lines:
print(line, end='')
ஒரு குறிப்பிட்ட வார்த்தை இல்லாமல் வரிகளை பொருத்த awk ஐப் பயன்படுத்துதல்
AWK ஸ்கிரிப்ட்
# AWK script to print lines that do not contain the word 'hede'
awk '!/hede/' input.txt
வடிகட்டி வரிகளுக்கான ஜாவாஸ்கிரிப்ட் குறியீடு
Node.js
const fs = require('fs');
const input = fs.readFileSync('input.txt', 'utf8');
const lines = input.split('\n');
const filteredLines = lines.filter(line => !line.includes('hede'));
filteredLines.forEach(line => console.log(line));
வார்த்தை இல்லாமல் வரிகளை வடிகட்ட PHP ஸ்கிரிப்ட்
PHP
<?php
$file = file('input.txt');
foreach ($file as $line) {
if (strpos($line, 'hede') === false) {
echo $line;
}
}
?>
ரீஜெக்ஸ் மற்றும் லைன் வடிகட்டலுக்கான மேம்பட்ட நுட்பங்கள்
அடிப்படை வரி வடிகட்டலுக்கு அப்பால், வழக்கமான வெளிப்பாடுகள் மிகவும் சிக்கலான காட்சிகளுக்கு மேம்பட்ட நுட்பங்களை வழங்குகின்றன. எடுத்துக்காட்டாக, ரெஜெக்ஸில் எதிர்மறையான தோற்றப்பாடுகள் ஒரு குறிப்பிட்ட சொல்லைக் கொண்ட வரிகளை நேரடியாக வடிவத்திற்குள் விலக்கப் பயன்படுத்தப்படலாம். பைதான் அல்லது ஜாவாஸ்கிரிப்ட் போன்ற லுக்ஹெட்களை ஆதரிக்கும் கருவிகள் அல்லது மொழிகளில் வேலை செய்யும் போது இது மிகவும் பயனுள்ளதாக இருக்கும். இந்த வலியுறுத்தல்களை இணைப்பதன் மூலம், கூடுதல் வடிகட்டுதல் கட்டளைகளை நம்பாமல் உங்கள் தேடல்களைச் செம்மைப்படுத்தலாம்.
மேலும், ரீஜெக்ஸ் தொடரியல் நுணுக்கங்களைப் புரிந்துகொள்வது உரையை திறமையாக கையாளும் மற்றும் தேடும் திறனை கணிசமாக மேம்படுத்தும். எடுத்துக்காட்டாக, b போன்ற எல்லை நங்கூரங்களைப் பயன்படுத்துவது, நீண்ட சொற்களுக்குள் பகுதிப் பொருத்தங்களைத் தவிர்த்து, வார்த்தை சரியாகப் பொருந்துவதை உறுதிசெய்ய உதவும். பதிவு கோப்பு பகுப்பாய்வு அல்லது தரவு பிரித்தெடுத்தல் போன்ற துல்லியம் மிக முக்கியமான உரை செயலாக்கப் பணிகளில் இந்த அளவிலான துல்லியம் முக்கியமானது.
Regex வடிகட்டுதல் பற்றிய பொதுவான கேள்விகள் மற்றும் பதில்கள்
- ஒரு வார்த்தையை விலக்க regex ஐ எவ்வாறு பயன்படுத்துவது?
- எதிர்மறையான தோற்றத்தைப் பயன்படுத்துவதன் மூலம் (?!hede), உங்கள் ரீஜெக்ஸ் முறைக்குள்.
- வார்த்தைகளைத் தவிர்த்து ரீஜெக்ஸை grep ஆதரிக்க முடியுமா?
- ஆம், பயன்படுத்தி grep -v உங்கள் ரீஜெக்ஸ் பேட்டர்னுடன் ஒரு குறிப்பிட்ட வார்த்தையைக் கொண்ட வரிகளை விலக்கலாம்.
- ரீஜெக்ஸில் b ஆங்கர் என்ன செய்கிறது?
- தி \b நங்கூரம் வார்த்தை எல்லைகளுடன் பொருந்துகிறது, சரியான வார்த்தை பொருந்துவதை உறுதி செய்கிறது.
- கூடுதல் கருவிகள் இல்லாமல் வரிகளை வடிகட்ட முடியுமா?
- ஆம், நெகட்டிவ் லுக்ஹெட்ஸ் போன்ற மேம்பட்ட ரீஜெக்ஸ் நுட்பங்களைப் பயன்படுத்துவதன் மூலம், ஒரே மாதிரியில் வரிகளை வடிகட்டலாம்.
- வரி வடிகட்டலுக்கு பைதான் எப்படி ரெஜெக்ஸைக் கையாள முடியும்?
- பைதான் பயன்படுத்த முடியும் re தொகுதி, குறிப்பாக re.search() மற்றும் வரிகளை வடிகட்ட, புரிதல்களை பட்டியலிடுங்கள்.
- ஜாவாஸ்கிரிப்ட் வரிகளில் சொற்களை விலக்க ரெஜெக்ஸைப் பயன்படுத்த முடியுமா?
- ஆம், ஜாவாஸ்கிரிப்ட் பயன்படுத்தலாம் regex போன்ற முறைகளுடன் இணைந்து filter() குறிப்பிட்ட சொற்களைக் கொண்ட வரிகளை விலக்க.
- வரி வடிகட்டலில் awk இன் பங்கு என்ன?
- தி awk கட்டளை நேரடியாக வடிவங்களைப் பயன்படுத்தி வரிகளை வடிகட்ட முடியும், இது உரை செயலாக்கத்திற்கு மிகவும் திறமையானது.
- PHP ஆனது ரீஜெக்ஸ் அடிப்படையிலான வரி வடிகட்டல் திறன் கொண்டதா?
- ஆம், PHP போன்ற செயல்பாடுகளை பயன்படுத்தலாம் preg_match மற்றும் strpos வரிகளை வடிகட்ட சுழல்களுக்குள்.
- உரை செயலாக்கத்தில் regex ஏன் பயனுள்ளதாக இருக்கிறது?
- Regex துல்லியமான மற்றும் நெகிழ்வான உரை தேடல்களை அனுமதிக்கிறது, தரவு பிரித்தெடுத்தல் மற்றும் பதிவு பகுப்பாய்வு போன்ற பணிகளுக்கு இது விலைமதிப்பற்றதாக ஆக்குகிறது.
ரீஜெக்ஸ் மற்றும் லைன் வடிகட்டுதல் நுட்பங்களை விரிவுபடுத்துதல்
அடிப்படை வரி வடிகட்டலுக்கு அப்பால், வழக்கமான வெளிப்பாடுகள் மிகவும் சிக்கலான காட்சிகளுக்கு மேம்பட்ட நுட்பங்களை வழங்குகின்றன. எடுத்துக்காட்டாக, ரெஜெக்ஸில் எதிர்மறையான பார்வைக் கூற்றுகள் ஒரு குறிப்பிட்ட சொல்லைக் கொண்ட வரிகளை நேரடியாக வடிவத்திற்குள் விலக்கப் பயன்படுத்தப்படலாம். பைதான் அல்லது ஜாவாஸ்கிரிப்ட் போன்ற லுக்ஹெட்களை ஆதரிக்கும் கருவிகள் அல்லது மொழிகளில் வேலை செய்யும் போது இது மிகவும் பயனுள்ளதாக இருக்கும். இந்த வலியுறுத்தல்களை இணைப்பதன் மூலம், கூடுதல் வடிகட்டுதல் கட்டளைகளை நம்பாமல் உங்கள் தேடல்களைச் செம்மைப்படுத்தலாம்.
மேலும், ரீஜெக்ஸ் தொடரியல் நுணுக்கங்களைப் புரிந்துகொள்வது உரையை திறமையாக கையாளும் மற்றும் தேடும் திறனை கணிசமாக மேம்படுத்தும். எடுத்துக்காட்டாக, b போன்ற எல்லை நங்கூரங்களைப் பயன்படுத்துவது, நீண்ட சொற்களுக்குள் பகுதிப் பொருத்தங்களைத் தவிர்த்து, வார்த்தை சரியாகப் பொருந்துவதை உறுதிசெய்ய உதவும். பதிவு கோப்பு பகுப்பாய்வு அல்லது தரவு பிரித்தெடுத்தல் போன்ற துல்லியம் மிக முக்கியமான உரை செயலாக்கப் பணிகளில் இந்த அளவிலான துல்லியம் முக்கியமானது.
Regex வடிகட்டுதல் பற்றிய பொதுவான கேள்விகள் மற்றும் பதில்கள்
- ஒரு வார்த்தையை விலக்க regex ஐ எவ்வாறு பயன்படுத்துவது?
- எதிர்மறையான தோற்றத்தைப் பயன்படுத்துவதன் மூலம் (?!hede), உங்கள் ரீஜெக்ஸ் மாதிரிக்குள்.
- வார்த்தைகளைத் தவிர்த்து ரீஜெக்ஸை grep ஆதரிக்க முடியுமா?
- ஆம், பயன்படுத்தி grep -v உங்கள் ரீஜெக்ஸ் பேட்டர்னுடன் ஒரு குறிப்பிட்ட வார்த்தையைக் கொண்ட வரிகளை விலக்கலாம்.
- ரீஜெக்ஸில் b ஆங்கர் என்ன செய்கிறது?
- தி \b நங்கூரம் வார்த்தை எல்லைகளுடன் பொருந்துகிறது, சரியான வார்த்தை பொருந்துவதை உறுதி செய்கிறது.
- கூடுதல் கருவிகள் இல்லாமல் வரிகளை வடிகட்ட முடியுமா?
- ஆம், நெகட்டிவ் லுக்ஹெட்ஸ் போன்ற மேம்பட்ட ரீஜெக்ஸ் நுட்பங்களைப் பயன்படுத்துவதன் மூலம், ஒரே மாதிரியில் வரிகளை வடிகட்டலாம்.
- வரி வடிகட்டலுக்கு பைதான் எப்படி ரெஜெக்ஸைக் கையாள முடியும்?
- பைதான் பயன்படுத்த முடியும் re தொகுதி, குறிப்பாக re.search() மற்றும் வரிகளை வடிகட்ட, புரிதல்களை பட்டியலிடுங்கள்.
- ஜாவாஸ்கிரிப்ட் வரிகளில் சொற்களை விலக்க ரெஜெக்ஸைப் பயன்படுத்த முடியுமா?
- ஆம், ஜாவாஸ்கிரிப்ட் பயன்படுத்தலாம் regex போன்ற முறைகளுடன் இணைந்து filter() குறிப்பிட்ட சொற்களைக் கொண்ட வரிகளை விலக்க.
- வரி வடிகட்டலில் awk இன் பங்கு என்ன?
- தி awk கட்டளை நேரடியாக வடிவங்களைப் பயன்படுத்தி வரிகளை வடிகட்ட முடியும், இது உரை செயலாக்கத்திற்கு மிகவும் திறமையானது.
- PHP ஆனது ரீஜெக்ஸ் அடிப்படையிலான வரி வடிகட்டுதல் திறன் கொண்டதா?
- ஆம், PHP போன்ற செயல்பாடுகளை பயன்படுத்தலாம் preg_match மற்றும் strpos வரிகளை வடிகட்ட சுழல்களுக்குள்.
- உரை செயலாக்கத்தில் regex ஏன் பயனுள்ளதாக இருக்கிறது?
- Regex துல்லியமான மற்றும் நெகிழ்வான உரை தேடல்களை அனுமதிக்கிறது, தரவு பிரித்தெடுத்தல் மற்றும் பதிவு பகுப்பாய்வு போன்ற பணிகளுக்கு இது விலைமதிப்பற்றது.
முக்கிய புள்ளிகளின் சுருக்கம்
வழக்கமான வெளிப்பாடுகள் உரையின் வரிகளைப் பொருத்துவதற்கும் வடிகட்டுவதற்கும் ஒரு சக்திவாய்ந்த முறையை வழங்குகிறது. நெகட்டிவ் லுக்ஹெட் கூற்றுகள் போன்ற நுட்பங்களைப் பயன்படுத்துவதன் மூலம், குறிப்பிட்ட சொற்களைக் கொண்ட வரிகளை ஒற்றை ரீஜெக்ஸ் பேட்டர்னுக்குள் திறமையாக விலக்கலாம். பைதான், ஜாவாஸ்கிரிப்ட், PHP மற்றும் ஷெல் கட்டளைகளான grep உள்ளிட்ட பல்வேறு நிரலாக்க மொழிகள் மற்றும் கருவிகள் இந்த ரீஜெக்ஸ் தீர்வுகளைச் செயல்படுத்த பல்வேறு அணுகுமுறைகளை வழங்குகின்றன. இந்த நுட்பங்களில் தேர்ச்சி பெறுவது உங்கள் உரை செயலாக்க திறன்களை மேம்படுத்துகிறது, துல்லியமான மற்றும் பயனுள்ள தரவு கையாளுதலை உறுதி செய்கிறது.