क्या आपने कभी पाठ के एक टुकड़े में आवर्ती पैटर्न खोजने की कोशिश की है? आपने अपने ब्राउज़र या वर्ड प्रोसेसर में खोज फ़ंक्शन की तरह कुछ उपयोग किया होगा, लेकिन जब आपको कुछ और जटिल खोजना होगा, तो यह प्रोवर्बियल हैस्टैक में सुई ढूंढने जैसा हो सकता है।

सौभाग्य से, चरित्र में सही पाठ में सटीक पैटर्न चुनने का एक तरीका है। इसे नियमित अभिव्यक्ति कहा जाता है, और यह आपको पाठ के माध्यम से खोज करने का स्वामी बनने देता है।

यदि आपने लिनक्स उपयोगिताओं पर कोई ध्यान दिया है, तो आप शायद ध्यान दें कि वे अक्सर नियमित अभिव्यक्ति नामक किसी चीज़ का उपयोग करते हैं। यद्यपि यूनिक्स और लिनक्स ने उन्हें लोकप्रिय बना दिया, फिर भी माइक्रोसॉफ्ट वर्ड समेत विभिन्न पैकेजों में नियमित अभिव्यक्तियां उपलब्ध हैं।

नियमित अभिव्यक्तियों का उल्लेख उल्लेखनीय रूप से कई उल्लेखनीय लिनक्स कार्यक्रमों में किया जाता है, जिनमें grep (जो वैश्विक नियमित अभिव्यक्ति प्रिंट), Awk और Sed शामिल है।

नियमित अभिव्यक्तियों को थोड़ी सी भाषा के रूप में सोचना बेहतर होता है, जिनकी मूल बातें एक छोटी सी जगह में वर्णित की जा सकती हैं।

आप मानक इनपुट या टेक्स्ट फ़ाइल से Grep या Ack जैसे टूल का उपयोग करके खोज सकते हैं।

उदाहरण के लिए, यदि आप ps कमांड से आउटपुट में "फ़ायरफ़ॉक्स" शब्द खोजने का प्रयास कर रहे थे, तो यहां आप यह कैसे करेंगे:

 पीएस | grep फ़ायरफ़ॉक्स 

और यहां बताया गया है कि आपको फ़ाइल में "maketecheasier" शब्द कैसे मिलेगा।

 grep maketecheasier somefile 

अक्षरों से परे

नियमित अभिव्यक्तियों में, आप स्ट्रिंग के कुछ हिस्सों को भी खोज सकते हैं। जिस तरह से आप यह करेंगे दो अक्षर के साथ। उन्हें वास्तव में मेटाएक्टेक्टर कहा जाता है। वे वाइल्डकार्ड मैचों के समान हैं जिन्हें आपने खोल में इस्तेमाल किया होगा।

  • "एक" एक चरित्र के लिए खड़ा है। पैटर्न "सीटी" उदाहरण के लिए "बिल्ली, " "कट" और "कोट" शब्द दोनों से मेल खाता है।
  • "*" मेटाएक्टेक्टर का मतलब पिछले चरित्र 0 या अधिक बार ढूंढना है। पैटर्न "एल। * एक्स" को "लिनक्स" मिलेगा, साथ ही साथ किसी अन्य पैटर्न को एक ही पैटर्न में फिट करने के लिए किया जाएगा।

कारण आप केवल "l*x" जैसे कुछ का उपयोग नहीं कर सकते जैसे कि शेल में होगा क्योंकि 0 या उससे अधिक अक्षरों से मेल खाने का मतलब है कि यह उन रेखाओं को पायेगा जिनके पास "एल" नहीं था, इसके बाद किसी अन्य चरित्र के बाद। दूसरे शब्दों में, मिलान करने की कोशिश करने वाली किसी भी पंक्ति, जो बिल्कुल बेकार है।

शुरुआत या अंत में पैटर्न ढूँढना

आप शुरुआत या लाइनों के अंत में शुरू पैटर्न भी पा सकते हैं।

  • "^" चरित्र शुरुआत में मेल खाता है
  • अंत में मिलान "$"।

उदाहरण के लिए, "sier$" मैच "टेक टेकियर" और "^Make" से मेल खाएगा "मेक।"

एक श्रृंखला में मिलान ढूँढना

आप अधिक जटिल पात्रों में भी जा सकते हैं। स्क्वायर ब्रैकेट में आपके द्वारा डाली गई किसी भी चीज को एक श्रेणी के रूप में मिलान किया जाएगा। उदाहरण के लिए, " [az] " सभी लोअरकेस अक्षरों से मेल खाता है। " [a-zA-Z] " सभी पत्रों से मेल खाता है। " [a-zA-Z0-9] " अल्फान्यूमेरिक पात्रों से मेल खाता है। ब्रैकेट के अंदर, "^" चरित्र कुछ भी अस्वीकार करता है। " [^a-zA-Z] " कुछ भी मेल खाता है जो एक पत्र नहीं है।

आप " \< " और " \> " वर्णों के साथ शब्द सीमाएं भी पा सकते हैं। पैटर्न " \ " "लिनक्स" से मेल खाता है, जाहिर है।

आप घुंघराले ब्रैकेट के साथ कुछ विशिष्ट समय से मेल खा सकते हैं। " {3} " कुछ बार तीन बार मेल खाता है और " {3, 5} " 3 से 5 गुना के बीच कुछ मेल खाता है।

इन साधारण बिल्डिंग ब्लॉक के साथ, आप कुछ सुंदर जटिल सामग्री से मेल खा सकते हैं। एक संक्षिप्त लेख में समझाया जा सकता है की तुलना में नियमित अभिव्यक्तियों के लिए बहुत कुछ है। यदि आप इस विषय के व्यापक पुस्तक-लंबाई उपचार चाहते हैं, तो आपको निश्चित रूप से मास्टरिंग नियमित अभिव्यक्तियों की जांच करनी चाहिए जेफरी ईएफ फ्रेडल द्वारा।

प्रकटीकरण: इस आलेख में एक संबद्ध लिंक है। जबकि हम केवल उन उत्पादों के बारे में लिखते हैं जो हमें लगता है कि इस साइट पर होने के लायक हैं, यदि आप क्लिक करते हैं और उत्पाद खरीदते हैं तो टेक आसान आसान कमीशन कमा सकते हैं।

छवि क्रेडिट: xkcd