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

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

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

How to Capture Repeating Groups in Go Regular Expressions?

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

जब एक विशिष्ट प्रारूप का पालन करने वाले स्ट्रिंग्स को पार्स करने का प्रयास किया जाता है, जैसे अपरकेस शब्द जिसके बाद शून्य या अधिक डबल होता है -उद्धृत तर्कों के लिए, एक नियमित अभिव्यक्ति को परिभाषित करना आवश्यक है जो वांछित तत्वों को कैप्चर करता है। प्रदान किए गए परिदृश्य में, निम्नलिखित नियमित अभिव्यक्ति का उपयोग करके दोहराए जाने वाले तर्कों को पकड़ने का प्रयास:

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

सभी तर्कों को सही ढंग से पकड़ने में विफल। इस समस्या को हल करने के लिए, एक संशोधित नियमित अभिव्यक्ति प्रस्तावित है:

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

यह संशोधित नियमित अभिव्यक्ति आसपास के उद्धरणों को कैप्चर किए बिना या तो एक बड़े शब्द या डबल-उद्धृत स्ट्रिंग से मेल खाती है। यह दृष्टिकोण दोहराए जाने वाले तर्कों को बेहतर ढंग से पकड़ने की अनुमति देता है, जैसा कि निम्नलिखित कोड स्निपेट में दिखाया गया है:

results := re1.FindAllStringSubmatch(`COMMAND "arg1" "arg2" "arg3"`, -1)

fmt.Println("Command:", results[0][1])
for _, arg := range results[1:] {
    fmt.Println("Arg:", arg[2])
}

यह संशोधित दृष्टिकोण कमांड और उसके तीन तर्कों को सफलतापूर्वक कैप्चर करता है और उन्हें अलग से प्रिंट करता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3