‘RegExp’ ऑब्जेक्ट

यह लेख RegExp ऑब्जेक्ट की व्याख्या करता है।

हम व्यावहारिक उदाहरणों के साथ RegExp ऑब्जेक्ट को समझाएंगे।

YouTube Video

‘RegExp’ ऑब्जेक्ट

RegExp क्या है?

RegExp (रेगुलर एक्सप्रेशन) एक ऑब्जेक्ट है जो स्ट्रिंग पैटर्न्स को दर्शाने के लिए उपयोग होता है। सरल अक्षर तुलना के विपरीत, आप 'कुछ शर्तों को पूरा करने वाले स्ट्रिंग्स' को लचीलापन के साथ परिभाषित कर सकते हैं।

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

1const pattern = /abc/;
  • यह रेगुलर एक्सप्रेशन जांचता है कि 'abc' अनुक्रम स्ट्रिंग में शामिल है या नहीं।

रेगुलर एक्सप्रेशन्स कैसे बनाएं (दो विधियाँ)

RegExp सिंटैक्स के दो प्रकार होते हैं: लिटरल नोटेशन और कंस्ट्रक्टर नोटेशन

1// Literal notation: pattern and flags are written together
2const literal         = /hello/;
3const literalWithFlag = /hello/i;
4const literalDigits   = /\d+/;
5
6// Constructor notation: pattern and flags are passed separately
7const constructor         = new RegExp("hello");
8const constructorWithFlag = new RegExp("hello", "i");
9const constructorDigits   = new RegExp("\\d+");
  • लिटरल नोटेशन संक्षिप्त और पठनीय है, जिससे यह स्थिरांक के रूप में उपयोग किए जाने वाले रेगुलर एक्सप्रेशन्स के लिए उपयुक्त बनता है।। दूसरी ओर, कंस्ट्रक्टर नोटेशन तब उपयोग किया जाता है जब आप पैटर्न को वेरिएबल्स का उपयोग करके बनाना चाहते हैं या रनटाइम पर इसकी सामग्री निर्धारित करना चाहते हैं।
  • लिटरल नोटेशन के साथ, आप रेगुलर एक्सप्रेशन और उसके फ्लैग्स दोनों को सहज ढंग से एक साथ वर्णित कर सकते हैं। इसके विपरीत, कंस्ट्रक्टर नोटेशन के साथ आपको पैटर्न और फ्लैग्स को अलग-अलग निर्दिष्ट करना होता है।
  • साथ ही, कंस्ट्रक्टर नोटेशन में रेगुलर एक्सप्रेशन को स्ट्रिंग के रूप में पास किया जाता है, इसलिए बैकटस्लैश को दो बार एस्केप करना पड़ता है।

test(): सबसे बुनियादी मान्यता (वैलिडेशन)

RegExp ऑब्जेक्ट रेगुलर एक्सप्रेशन का उपयोग करके मूल्यांकन और क्रियाओं को निष्पादित करने की विधियां प्रदान करता है। test() एक ऐसी मेथड है जो यह इंगित करती है कि पैटर्न मेल खाता है या नहीं, यह बूलियन के रूप में लौटाती है

1const regex = /JavaScript/;
2
3console.log(regex.test("I love JavaScript")); // true
4console.log(regex.test("I love TypeScript")); // false
  • यह वह पहली मेथड है जो आपको सीखनी चाहिए, और यह कंडीशनल ब्रांचिंग या इनपुट वैलिडेशन के लिए आदर्श है।

match(): मिलान परिणाम प्राप्त करें

match() मेल खाने वाली स्ट्रिंग और विस्तृत जानकारी को एक एरे के रूप में लौटाता है

1const text = "Version 1.2.3";
2const result = text.match(/\d+\.\d+\.\d+/);
3
4console.log(result[0]); // "1.2.3"
  • match() निष्कर्षण और पार्सिंग की प्रक्रियाओं के लिए test() से अधिक सुविधाजनक है।

replace(): रेगुलर एक्सप्रेशन्स का उपयोग करके प्रतिस्थापन करना

replace() मेल खाने वाले भाग को किसी अन्य स्ट्रिंग में बदल देता है

1const text = "Hello   World";
2const result = text.replace(/\s+/g, " ");
3
4console.log(result); // "Hello World"
  • आप इसे लॉग फॉर्मेटिंग या अनावश्यक व्हाइटस्पेस को सामान्य करने के लिए उपयोग कर सकते हैं।

फ्लैग्स के मूल सिद्धांत (g, i, m)

आप रेगुलर एक्सप्रेशंस में 'फ्लैग्स' निर्दिष्ट कर सकते हैं। फ्लैग्स वे विकल्प हैं जो निर्धारित करते हैं कि रेगुलर एक्सप्रेशन कुछ नियमों के अनुसार स्ट्रिंग को कैसे प्रोसेस करता है। यहां तक कि समान पैटर्न के साथ भी, परिणाम फ्लैग्स के आधार पर बदल सकते हैं।

1const text = "apple Apple APPLE";
2const regex = /apple/gi;        // or new RegExp("apple", "gi");
3
4console.log(text.match(regex)); // ["apple", "Apple", "APPLE"]
  • g (ग्लोबल) फ्लैग पूरी स्ट्रिंग में खोज करता है।
  • i (इग्नोर केस) फ्लैग मिलान करते समय अक्षरों की केस के अंतर को अनदेखा करता है।
1const multilineText = `apple
2banana
3apple`;
4
5const regexM = /^apple/gm;
6
7console.log(multilineText.match(regexM)); // ["apple", "apple"]
  • m (मल्टीलाइन) फ्लैग मल्टीलाइन स्ट्रिंग्स को प्रत्येक पंक्ति के आधार पर संसाधित करने के लिए उपयोग किया जाता है। इसके साथ, ^ और $ पूरी स्ट्रिंग के बजाय प्रत्येक पंक्ति की शुरुआत या अंत के आधार पर काम करते हैं।

कैरेक्टर क्लासेस: एक स्थान पर कई विकल्प सम्मिलित करें

[] वर्ग कोष्ठकों का उपयोग करके आप एक स्थान के लिए संभव वर्णों का सेट परिभाषित कर सकते हैं

1const regex = /gr[ae]y/;
2
3console.log(regex.test("gray")); // true
4console.log(regex.test("grey")); // true
  • यह वर्तनी विविधताओं और सरल विकल्पों के लिए उपयोगी है।

मेटाकैरेक्टर्स: सामान्य शॉर्टकट्स

मेटाकैरेक्टर्स ऐसे चिन्ह होते हैं जो आपको सामान्यतः उपयोग होने वाले पैटर्न्स को संक्षिप्त रूप में लिखने की अनुमति देते हैं।

1const regex = /\d{4}-\d{2}-\d{2}/;  // or new RegExp("\\d{4}-\\d{2}-\\d{2}");
2
3console.log(regex.test("2025-12-29")); // true
  • \d का अर्थ है एक अंक, और {n} पुनरावृत्ति की संख्या बताता है।

^ और $: पूरी स्ट्रिंग की वैधता जांचें

^ और $ स्ट्रिंग की शुरुआत और अंत का प्रतिनिधित्व करते हैं

1const regex = /^\d+$/;
2
3console.log(regex.test("123"));   // true
4console.log(regex.test("123a"));  // false
  • ये आवश्यक होते हैं जब आपको बिल्कुल सही मेल चाहिए, जैसे कि फॉर्म इनपुट्स में।

समूह बनाना और कैप्चरिंग

कोष्ठक () का उपयोग करके, आप आंशिक मान निकाल सकते हैं

1const text = "2025/12/29";
2const regex = /(\d{4})\/(\d{2})\/(\d{2})/;
3const [, year, month, day] = text.match(regex);
4
5console.log(year, month, day); // 2025 12 29
  • यह तिथियों और संरचित स्ट्रिंग्स को विभाजित करने के लिए अक्सर उपयोग किया जाता है।

सामान्य गलतियाँ और ध्यान देने योग्य बिंदु

रेगुलर एक्सप्रेशन्स शक्तिशाली हैं, लेकिन ये पढ़ने में कठिन हो सकते हैं

1// Hard to read
2const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+$/;
  • अगर यह बहुत जटिल हो जाए, तो आप टिप्पणियाँ जोड़ने, एक्सप्रेशंस को विभाजित करने, या प्रक्रिया को संशोधित करने पर विचार कर सकते हैं।

सारांश

RegExp जावास्क्रिप्ट में स्ट्रिंग प्रोसेसिंग को सरल और सटीक रूप से दर्शाने के लिए एक अनिवार्य बुनियादी सुविधा है। आपको शुरुआत से जटिल रेगुलर एक्सप्रेशन्स सीखने की आवश्यकता नहीं है; व्यावहारिक ज़रूरतों के अनुसार test, match और replace जैसी बुनियादी मेथड्स और सिंटैक्स का उपयोग करना अधिक महत्वपूर्ण है। यदि आप रेगुलर एक्सप्रेशन्स को 'विशेष ज्ञान' नहीं, बल्कि 'पैटर्न को व्यवस्थित रूप में दर्शाने वाले उपकरण' के रूप में देखेंगे, तो आप इनपुट वैलिडेशन और टेक्स्ट प्रोसेसिंग की गुणवत्ता और पठनीयता को बहुत बेहतर बना सकते हैं।

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video