कैप्चरिंग समूहों का उपयोग करके आप एकाधिक वर्णों को एक इकाई के रूप में मान सकते हैं। आपको बस वर्णों को कोष्ठकों के एक समूह के अंदर समूहीकृत करने की आवश्यकता है। उदाहरण के लिए -
(.*)(\\d+)(.*)
यदि आप एक से अधिक समूहों का मिलान करने का प्रयास कर रहे हैं तो प्रत्येक समूह के मिलान परिणाम कैप्चर किए जाते हैं। आप समूह के संबंधित समूह संख्या को समूह () विधि में पास करके परिणाम प्राप्त कर सकते हैं। 1,2, 3 आदि.. (दाएं से बाएं) समूह 0 पूरे मैच को इंगित करता है।
उदाहरण
आयात करें इनपुट टेक्स्ट दर्ज करें"); स्कैनर एससी =नया स्कैनर (System.in); स्ट्रिंग इनपुट =sc.nextLine (); स्ट्रिंग रेगेक्स ="(.*)(\\d+)(.*)"; // एक पैटर्न ऑब्जेक्ट बनाएं पैटर्न पैटर्न =Pattern.compile(regex); // अब मैचर ऑब्जेक्ट बनाएं। मैचर मैचर =पैटर्न। मैचर (इनपुट); if (matcher.find ( )) { System.out.println ("मान मिला:" + matcher.group (0)); System.out.println ("मान मिला:" + matcher.group(1) ); System.out.println ("मूल्य मिला:" + matcher.group (2)); System.out.println ("मूल्य मिला:" + matcher.group (3)); } और { System.out.println ("कोई मिलान नहीं"); } }}आउटपुट
मध्य में 1234 (अंकों) के साथ इनपुट टेक्स्टनमूना डेटा दर्ज करेंफाउंड मान:मध्य में 1234 (अंकों) के साथ नमूना डेटाफाउंड मान:123फाउंड मान के साथ नमूना डेटा:4मिला मान:(अंक) बीच में
गैर कैप्चरिंग समूह
गैर-कैप्चरिंग समूह कैप्चरिंग समूह की समान कार्यक्षमता प्रदान करता है लेकिन यह परिणाम कैप्चर नहीं करता है
उदाहरण के लिए, यदि आपको समूहों का उपयोग करते हुए किसी पाठ से URL या फ़ोन नंबर का मिलान करने की आवश्यकता है, क्योंकि वांछित उप-स्ट्रिंग का प्रारंभिक भाग समान है, तो आपको कुछ समूहों के परिणामों को कैप्चर करने की आवश्यकता नहीं है, ऐसे मामलों में आप गैर-कैप्चरिंग समूहों का उपयोग कर सकते हैं। एक गैर-कैप्चरिंग समूह (?:से शुरू होता है और ) पर समाप्त होता है।
उदाहरण
आयात करें इनपुट टेक्स्ट दर्ज करें"); स्कैनर एससी =नया स्कैनर (System.in); स्ट्रिंग इनपुट =sc.nextLine (); स्ट्रिंग रेगेक्स ="(.*)(?:\\d+)(.*)"; // एक पैटर्न ऑब्जेक्ट बनाएं पैटर्न पैटर्न =Pattern.compile(regex); // अब मैचर ऑब्जेक्ट बनाएं। मैचर मैचर =पैटर्न। मैचर (इनपुट); if (matcher.find ( )) { System.out.println ("मान मिला:" + matcher.group (0)); System.out.println ("मान मिला:" + matcher.group(1) ); System.out.println ("मिला मान:" + matcher.group(2)); } और { System.out.println ("कोई मिलान नहीं"); } }}आउटपुट
मध्यम में 1234 (अंकों) के साथ इनपुट टेक्स्टनमूना डेटा दर्ज करेंफाउंड मान:मध्य में 1234 (अंकों) के साथ नमूना डेटाफाउंड मान:123फाउंड मान के साथ नमूना डेटा:बीच में (अंक)
नोट: गैर-कैप्चरिंग समूह को समूह गणना में शामिल नहीं किया जाएगा।