जावा रेगेक्स कैप्चरिंग ग्रुप को समझना
इस कोड स्निपेट में, हम एक स्ट्रिंग के हिस्सों को निकालने के लिए जावा की रेगुलर एक्सप्रेशन (रेगेक्स) लाइब्रेरी का उपयोग करते हैं। रेगेक्स को "(.)(\d )(.)" के रूप में परिभाषित किया गया है, जहां:
रेगेक्स निष्पादन
जब रेगेक्स को "यह ऑर्डर QT3000 के लिए रखा गया था! ठीक है?" स्ट्रिंग के विरुद्ध निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
लालची क्वांटिफायर को समझना
रेगेक्स में उपयोग किया जाने वाला डिफ़ॉल्ट क्वांटिफायर लालची है, जिसका अर्थ है कि यह अगले समूह को संतुष्ट करने के लिए जितना संभव हो उतने वर्णों से मेल खाता है। इस मामले में, ".*" पहला अंक मिलने तक पूरी स्ट्रिंग से मेल खाता है, तीसरे समूह के लिए कोई अक्षर नहीं छोड़ता है। केवल आवश्यक वर्णों के लिए, हम एक अनिच्छुक परिमाणक का उपयोग कर सकते हैं, जिसे प्रश्न चिह्न द्वारा दर्शाया जाता है। "(.
)" को "(.?)" से बदलने पर संभव वर्णों की न्यूनतम संख्या मेल खाती है, जिसके परिणामस्वरूप निम्न आउटपुट प्राप्त होता है:मिला मूल्य: यह ऑर्डर QT3000 के लिए रखा गया था! ठीक है? पाया गया मूल्य: यह ऑर्डर क्यूटी के लिए दिया गया था मिला मूल्य: 3000
समूहों को कैप्चर करने के लाभ
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
पैटर्न पैटर्न = पैटर्न.कंपाइल( "(।*?)(\\डी )(।*)"); मैचर मैचर = पैटर्न.मैचर (लाइन); यदि (matcher.find()) { System.out.println("समूह 1:" मिलानकर्ता.समूह(1)); System.out.println("समूह 2:" मिलानकर्ता.समूह(2)); System.out.println("समूह 3:" मिलानकर्ता.समूह(3)); }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3