"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > बार-बार जावास्क्रिप्ट रेगेक्स में एकाधिक समूहों को कैसे कैप्चर करें?

बार-बार जावास्क्रिप्ट रेगेक्स में एकाधिक समूहों को कैसे कैप्चर करें?

2024-11-26 को प्रकाशित
ब्राउज़ करें:299

How to Capture Multiple Groups in a Repeated JavaScript Regex?

जावास्क्रिप्ट रेगेक्सप में मनमाना समूहों को कैप्चर करना

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

उदाहरण: नेस्टेड कैप्चर ग्रुप

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

/^(\s*\w ) $/

अपेक्षित आउटपुट:

["foo bar baz", "foo", " bar", " baz"]

वास्तविक आउटपुट:

["foo bar baz", " baz"]

इस मामले में, केवल अंतिम कैप्चर किया गया समूह, " baz", वापस किया जाता है। ऐसा इसलिए है क्योंकि जावास्क्रिप्ट प्रत्येक दोहराए गए समूह के लिए केवल अंतिम कैप्चर को बरकरार रखता है।

डिलीमीटर पर विभाजित करें: यदि संभव हो, तो वांछित को अलग करने के लिए स्ट्रिंग विभाजन का उपयोग करें खंड।

Exec लूप और विभाजन:
    एक स्ट्रिंग के भीतर पैटर्न को बार-बार मिलान करने और कैप्चर किए गए समूह को अलग-अलग मैचों में विभाजित करने के लिए एक निष्पादन लूप का उपयोग करें।
  • मल्टीलेवल मिलान:
  • दोहराए गए समूह को एक मैच में कैप्चर करें और फिर व्यक्ति को निकालने के लिए दूसरे रेगेक्स का उपयोग करें खंड।
  • उदाहरण: एक्ज़ेक लूप और विभाजन
  • नेस्टेड समूह को पकड़ने और विभाजित करने के लिए एक्ज़िक्यूटिव लूप का उपयोग करने का एक उदाहरण यहां दिया गया है:
var text = "a;b;;g;h;i;;j;k;"; var r = //g; वर मिलान; जबकि ((मिलान = r.exec(पाठ)) != शून्य) { प्रिंट(मैच[1].स्प्लिट(";"); } // आउटपुट: // ["सी", "डी", "ई", "एफ"] // ["xx", "yy", "zz"]

इस उदाहरण में, नेस्टेड समूह को समूह 1 के रूप में कैप्चर किया जाता है, जिसे बाद में अर्धविराम सीमांकक पर विभाजित किया जाता है।

संबंधित प्रश्न

var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>";
var r = /<(\w (;\w )*)>/g;
var match;

while ((match = r.exec(text)) != null) {
  print(match[1].split(";"));
}

// Output:
// ["c", "d", "e", "f"]
// ["xx", "yy", "zz"]

आप जावास्क्रिप्ट रेगेक्स में मेल खाने वाले समूहों तक कैसे पहुंचते हैं?

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3