लिनक्स रेगुलर एक्सप्रेशन ट्यूटोरियल: ग्रिप रेगेक्स उदाहरण

लिनक्स रेगुलर एक्सप्रेशन क्या हैं?

लिनक्स रेगुलर एक्सप्रेशन विशेष वर्ण हैं जो डेटा खोजने और जटिल पैटर्न से मिलान करने में मदद करते हैं। नियमित अभिव्यक्तियों को 'regexp' या 'regex' के रूप में संक्षिप्त किया जाता है। इनका उपयोग कई लिनक्स प्रोग्रामों में किया जाता है जैसे grep, bash, rename, sed, आदि।

नियमित अभिव्यक्तियों के प्रकार

समझने में आसानी के लिए आइए हम एक-एक करके विभिन्न प्रकार के Regex को सीखें।

क्लिक करें यहाँ उत्पन्न करें यदि वीडियो उपलब्ध न हो

बुनियादी नियमित अभिव्यक्तियाँ

नियमित अभिव्यक्तियों के साथ आमतौर पर उपयोग किए जाने वाले कुछ कमांड हैं tr, sed, vi और ग्रेपनीचे कुछ बुनियादी रेगेक्स सूचीबद्ध हैं।

चिन्ह Descriptआयनों
. किसी भी वर्ण को प्रतिस्थापित करता है
^ स्ट्रिंग की शुरुआत से मेल खाता है
$ स्ट्रिंग के अंत से मेल खाता है
* पिछले वर्ण से शून्य या अधिक बार मेल खाता है
\ विशेष वर्णों का प्रतिनिधित्व करें
() नियमित अभिव्यक्तियों को समूहित करें
? बिल्कुल एक अक्षर से मेल खाता है

आइए एक उदाहरण देखें.

किसी मौजूदा फ़ाइल की सामग्री देखने के लिए cat sample निष्पादित करें

बुनियादी नियमित अभिव्यक्तियाँ

'a' अक्षर वाली सामग्री खोजें.

बुनियादी नियमित अभिव्यक्तियाँ

'^' स्ट्रिंग की शुरुआत से मेल खाता है। आइए ऐसी सामग्री खोजें जो से शुरू होती है

बुनियादी नियमित अभिव्यक्तियाँ

केवल वे पंक्तियाँ फ़िल्टर की जाती हैं जो वर्ण से शुरू होती हैं। जिन पंक्तियों के आरंभ में वर्ण 'a' नहीं होता, उन्हें अनदेखा कर दिया जाता है।

आइये एक और उदाहरण देखें –

बुनियादी नियमित अभिव्यक्तियाँ

केवल उन पंक्तियों का चयन करें जो t से समाप्त होती हैं $

बुनियादी नियमित अभिव्यक्तियाँ

अंतराल नियमित अभिव्यक्ति

ये अभिव्यक्तियाँ हमें स्ट्रिंग में किसी वर्ण की घटनाओं की संख्या के बारे में बताती हैं। वे हैं

अभिव्यक्ति विवरण
{एन} 'n' बार प्रकट होने वाले पूर्ववर्ती वर्ण से सटीक रूप से मेल खाता है
{एन, एम} 'n' बार प्रकट होने वाले पूर्ववर्ती वर्ण से मेल खाता है, परंतु m से अधिक नहीं
{एन, } पूर्ववर्ती वर्ण से केवल तभी मेल खाता है जब वह 'n' बार या अधिक बार प्रकट होता है

उदाहरण:

'p' वर्ण वाली सभी पंक्तियों को फ़िल्टर करें

अंतराल नियमित अभिव्यक्ति

हम यह जाँचना चाहते हैं कि वर्ण 'p' एक स्ट्रिंग में एक के बाद एक ठीक 2 बार दिखाई देता है। इसके लिए सिंटैक्स होगा:

cat sample | grep -E p\{2}

अंतराल नियमित अभिव्यक्ति

नोट: आपको इन नियमित अभिव्यक्तियों के साथ -E जोड़ना होगा।

विस्तारित नियमित अभिव्यक्तियाँ

इन नियमित अभिव्यक्तियों में एक से अधिक अभिव्यक्तियों का संयोजन होत��� है। उनमें से कुछ इस प्रकार हैं:

अभिव्यक्ति विवरण
\+ पिछले वर्ण की एक या अधिक घटनाओं से मेल खाता है
\? पिछले वर्ण की शून्य या एक घटना से मेल खाता है

उदाहरण:

सभी वर्णों 't' की खोज की जा रही है

विस्तारित नियमित अभिव्यक्तियाँ

मान लीजिए हम उन पंक्तियों को फ़िल्टर करना चाहते हैं जहाँ वर्ण 'a' वर्ण 't' से पहले आता है

हम इस तरह के आदेश का उपयोग कर सकते हैं

cat sample|grep "a\+t"

विस्तारित नियमित अभिव्यक्तियाँ

ब्रेस विस्तार

ब्रेस विस्तार के लिए सिंटैक्स या तो अनुक्रम है या घुंघराले ब्रेसिज़ “{}” के अंदर आइटम की अल्पविराम से अलग की गई सूची है। अनुक्रम में आरंभिक और अंतिम आइटम दो अवधियों “..” द्वारा अलग किए जाते हैं।

कुछ उदाहरण:

ब्रेस विस्तार

उपरोक्त उदाहरणों में, इको कमांड ब्रेस विस्तार का उपयोग करके स्ट्रिंग्स बनाता है।

सारांश:

  • नियमित अभिव्यक्तियाँ वर्णों का एक समूह है जिसका उपयोग स्ट्रिंग्स में पैटर्न की जाँच करने के लिए किया जाता है
  • इन्हें 'रेगएक्स' और 'रेगेक्स' भी कहा जाता है
  • स्क्रिप्ट लिखने के लिए नियमित अभिव्यक्तियाँ सीखना महत्वपूर्ण है
  • कुछ बुनियादी नियमित अभिव्यक्तियाँ हैं:
चिन्ह Descriptआयनों
. किसी भी वर्ण को प्रतिस्थापित करता है
^ स्ट्रिंग की शुरुआत से मेल खाता है
$ स्ट्रिंग के अंत से मेल खाता है
  • कुछ विस्तारित नियमित अभिव्यक्तियाँ इस प्रकार हैं:
अभिव्यक्ति विवरण

\+

पिछले वर्ण की एक या अधिक घटनाओं से मेल खाता है
\? पिछले वर्ण की शून्य या एक घटना से मेल खाता है
  • कुछ अंतराल नियमित अभिव्यक्तियाँ हैं:
अभिव्यक्ति विवरण
{एन} 'n' बार प्रकट होने वाले पूर्ववर्ती वर्ण से सटीक रूप से मेल खाता है
{एन, एम} 'n' बार प्रकट होने वाले पूर्ववर्ती वर्ण से मेल खाता है, परंतु m से अधिक नहीं
{एन, } पूर्ववर्ती वर्ण से केवल तभी मेल खाता है जब वह 'n' बार या अधिक बार प्रकट होता है
  • ब्रेस एक्सपेंशन का उपयोग स्ट्रिंग्स बनाने के लिए किया जाता है। यह एक से कई स्ट्रिंग्स बनाने में मदद करता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: