जावास्क्रिप्ट में रेगुलर एक्सप्रेशन का परिचय
रेगुलर एक्सप्रेशन जटिल खोज और प्रतिस्थापन (या बस खोज) के लिए कमांड होते हैं। वे बहुत ही रोचक चीजें करने की अनुमति देते हैं, लेकिन दुर्भाग्य से, सीखने में काफी कठिन होते हैं।
रेगुलर एक्सप्रेशन के साथ काम करने के लिए जावास्क्रिप्ट के कई तरीके हैं। हम उनसे परिचय
replace के उदाहरण से शुरू करेंगे
- आप इस विधि से पहले से ही परिचित हैं: यह पहले
पैरामीटर के रूप में क्या बदलना है लेता है, और दूसरे के रूप में
- किससे बदलना है। और विधि स्वयं उस स्ट्रिंग पर लागू होती है
जिसमें प्रतिस्थापन किया जा रहा है:
'bab'.replace('a', '!'); // returns 'b!b'
इस विधि के पहले पैरामीटर में केवल एक स्ट्रिंग नहीं, बल्कि एक रेगुलर एक्सप्रेशन पास किया जा सकता है।
एक रेगुलर एक्सप्रेशन स्लैश / के अंदर स्थित कमांड का एक सेट होता है।
इन स्लैश को रेगुलर एक्सप्रेशन का डिलिमीटर कहा जाता है।
स्वयं रेगुलर एक्सप्रेशन दो प्रकार के वर्णों से बने होते हैं: वे जो स्वयं को दर्शाते हैं और वे जो कमांड वर्ण हैं, जिन्हें विशेष वर्ण कहा जाता है।
अक्षर और अंक स्वयं को दर्शाते हैं। निम्नलिखित
उदाहरण में हम रेगुलर एक्सप्रेशन का उपयोग करके
अक्षर 'a' को ! से बदल देंगे:
'bab'.replace(/a/, '!'); // returns 'b!b'
लेकिन डॉट एक विशेष वर्ण है
और किसी भी वर्ण को दर्शाता है। निम्नलिखित
उदाहरण में हम इस पैटर्न के अनुसार स्ट्रिंग पाएंगे:
अक्षर 'x', फिर कोई भी वर्ण, फिर
फिर से अक्षर 'x':
'xax eee'.replace(/x.x/, '!'); // returns '! eee'
डिलिमीटर के बाद मॉडिफायर लिखे जा सकते हैं
- कमांड जो रेगुलर एक्सप्रेशन के सामान्य गुणों को
बदलती हैं। उदाहरण के लिए, मॉडिफायर
g ग्लोबल सर्च और रिप्लेस मोड को सक्षम करता है
- इसके बिना रेगेक्स केवल पहला मिलान ढूंढता है,
जबकि इसके साथ - सभी मिलान ढूंढता है।
निम्नलिखित उदाहरण में मॉडिफायर
g निर्दिष्ट नहीं है और रेगेक्स केवल पहला
मिलान ढूंढेगा:
'aab'.replace(/a/, '!'); // returns '!ab'
और अब रेगेक्स सभी मिलान ढूंढेगा:
'aab'.replace(/a/g, '!'); // returns '!!b'
एक स्ट्रिंग दी गई है:
let str = 'ahb acb aeb aeeb adcb axeb';
एक रेगुलर एक्सप्रेशन लिखें जो स्ट्रिंग्स
'ahb', 'acb', 'aeb'
को इस पैटर्न के अनुसार ढूंढे: अक्षर 'a', कोई भी वर्ण,
अक्षर 'b'।
एक स्ट्रिंग दी गई है:
let str = 'aba aca aea abba adca abea';
एक रेगुलर एक्सप्रेशन लिखें जो स्ट्रिंग्स
'abba', 'adca', 'abea'
को इस पैटर्न के अनुसार ढूंढे: अक्षर 'a', 2
कोई भी वर्ण, अक्षर 'a'।
एक स्ट्रिंग दी गई है:
let str = 'aba aca aea abba adca abea';
एक रेगुलर एक्सप्रेशन लिखें जो स्ट्रिंग्स
'abba' और 'abea' को ढूंढे, बिना
'adca' को लिए।