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

मैं जावा 7 से पहले जावा में नामित कैप्चर समूहों का उपयोग कैसे कर सकता हूं?

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

How can I use named capture groups in Java before Java 7?

जावा में रेगुलर एक्सप्रेशन वाले नामित समूह

रेगुलर एक्सप्रेशन पैकेज की सीमाएं हैं

java.regex पैकेज मैंने इसकी पुष्टि की है नामित समूहों के लिए कोई समर्थन नहीं है, इसलिए कृपया मुझे बताएं कि कौन सी तृतीय-पक्ष लाइब्रेरी इसका समर्थन करती है।

मैंने jregex पर ध्यान दिया, लेकिन आखिरी रिलीज़ 2002 में थी और यह java5 के लिए काम नहीं करता था (हालाँकि मैंने इसे तुरंत आज़माया था)।

जावा 7 से समर्थन

जावा 7 ने नामित समूहों के लिए समर्थन जोड़ा। नामित कैप्चर समूहों का समर्थन करने के लिए बिल्डिंग ब्लॉक हैं:

  • "(?कैप्चरिंग टेक्स्ट)" नामित समूह "नाम" को परिभाषित करने के लिए
  • "\" नामित समूह "नाम" को बैकरेफरेंस करने के लिए k"
  • "${name}"
  • एक सबस्ट्रिंग वापस करने के लिए मैचर के प्रतिस्थापन स्ट्रिंग "Matcher.group(स्ट्रिंग नाम)" में कैप्चर किए गए समूह को संदर्भित करने के लिए निर्दिष्ट "नामित समूह" द्वारा कैप्चर किया गया इनपुट

जावा 7 और उससे पहले के लिए विकल्प

जावा 7 और उससे पहले के लिए, निम्नलिखित एक विकल्प था।

  • Google नामित-regex
  • jregex

Regex2 लाइब्रेरी

Regex2 लाइब्रेरी नामित समूहों का समर्थन करती है इसका विस्तार होता है java.util.regex.Pattern क्लास बनाने के लिए।

उदाहरण

इनपुट स्ट्रिंग: "टेस्ट 123"

नियमित अभिव्यक्ति: "(?\w ) (? \ d )"

पहुंच:

matcher.group(1) == "TEST"
matcher.group("लॉगिन") == "TEST"
matcher. नाम (1) == "लॉगिन"

Replace:

matcher.replaceAll("aAA_$1_sssss_$2____") == "aAAAA_TEST_sssss_123____"
matcher.replaceAll("aAA_$ { लॉगिन}_sssss_${id}____") == "AAAAA_TEST_sssss_123____"

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

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

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

Copyright© 2022 湘ICP备2022001581号-3