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

गो में रेगुलर एक्सप्रेशन में एकाधिक दोहराए जाने वाले समूहों को कैसे कैप्चर करें?

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

How to Capture Multiple Repeating Groups in Regular Expressions in Go?

गो में दोहराए जाने वाले समूहों को कैप्चर करना

जब एक विशिष्ट पैटर्न का पालन करने वाली स्ट्रिंग्स के साथ काम करते हैं, तो दोहराए जाने वाले समूहों को कैप्चर करना एक सामान्य कार्य हो सकता है। गो में, नियमित अभिव्यक्ति इस उद्देश्य के लिए एक शक्तिशाली उपकरण है। लक्ष्य कमांड (अपरकेस शब्द) और तर्क (उद्धृत स्ट्रिंग) दोनों को निकालना है।

re1, _ := regexp.Compile(`([A-Z] )(?: "([^"] )")*`)

यह रेगेक्स स्ट्रिंग में केवल अंतिम तर्क को कैप्चर करता है। तर्कों के कई समूहों को कैप्चर करने की अनुमति देने के लिए अभिव्यक्ति को संशोधित करें:

re1, _ := regexp .Compile(`([A-Z] )|(?: "([^"] )")`)

re1, _ := regexp.Compile(`([A-Z] )(?: "([^"] )")*`)
अब, कमांड और तर्क दोनों को निकालने के लिए, उचित रूप से संशोधित नियमित अभिव्यक्ति के साथ FindAllStringSubmatch फ़ंक्शन को नियोजित करें:

re1, _ := regexp.Compile(`([A-Z] )|(?: "([^"] )")`)
यह रेगेक्स कैप्चरिंग समूह है हैं:

समूह 1:
results := re1.FindAllStringSubmatch(`COPY "filename one" "filename two"`, -1)

समूह 2:

प्रत्येक तर्क (दोहरे-उद्धृत स्ट्रिंग)
  • परिणामों को दोहराना
  • अंत में, दोबारा दोहराना परिणाम और कमांड को तर्कों से अलग करें:
  • fmt.Println('कमांड:', परिणाम[0][1]) _, arg के लिए := श्रेणी परिणाम[1:] { fmt.Println("Arg:", arg[2]) }
नियमित अभिव्यक्ति की कमियों को दूर करके, आप अपने गो कोड में आवर्ती समूहों को प्रभावी ढंग से कैप्चर कर सकते हैं।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3