जावास्क्रिप्ट रेगुलर एक्सप्रेशन में नॉन-कैप्चरिंग ग्रुप
ब्रैकेट ( ) दो कार्य करते हैं -
वर्णों का समूहीकरण और कैप्चर समूह का कार्य। लेकिन
क्या करें यदि हमें समूहीकरण करने की आवश्यकता है,
लेकिन कैप्चर समूह में नहीं डालना है?
इस समस्या के समाधान के लिए विशेष
नॉन-कैप्चरिंग ग्रुप (?: )
बनाए गए हैं - वे समूहीकरण करते हैं, लेकिन कैप्चर समूह में नहीं डालते।
उदाहरण
निम्नलिखित उदाहरण में, हमें पहले ब्रैकेट की आवश्यकता है समूहीकरण के लिए, और दूसरे ब्रैकेट की कैप्चर समूह के लिए। हालाँकि, दोनों ब्रैकेट डेटा को कैप्चर समूह में सहेजते हैं:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
परिणामस्वरूप, हमारे कैप्चर समूह में निम्नलिखित होगा:
console.log(res[0]); // 'abab123' प्रदर्शित करेगा
console.log(res[1]); // 'ab' प्रदर्शित करेगा
console.log(res[2]); // '123' प्रदर्शित करेगा
उदाहरण
आइए ऐसा बनाते हैं कि पहला ब्रैकेट केवल समूहीकरण करे, लेकिन कैप्चर समूह में न डाले:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
परिणामस्वरूप, पहले कैप्चर समूह में हमारी संख्या होगी:
console.log(res[1]); // '123' प्रदर्शित करेगा