यदि आप रेगुलर एक्सप्रेशन बनाते समय घटनाओं की संख्या निर्दिष्ट करना चाहते हैं तो आप क्वांटिफायर का उपयोग कर सकते हैं। जावा तीन प्रकार के क्वांटिफ़ायर का समर्थन करता है, अर्थात्:लालची क्वांटिफ़ायर, अनिच्छुक क्वांटिफ़ायर और स्वामित्व वाले क्वांटिफ़ायर।
लालची परिमाणक − लालची क्वांटिफ़ायर डिफ़ॉल्ट क्वांटिफ़ायर हैं। एक लालची क्वांटिफायर इनपुट स्ट्रिंग से जितना संभव हो उतना मेल खाता है (सबसे लंबा मैच संभव है) यदि मैच नहीं हुआ तो यह अंतिम चरित्र को छोड़ देता है और फिर से मेल खाता है।
उदाहरण
आयात करें ।में); System.out.println ("इनपुट टेक्स्ट दर्ज करें:"); स्ट्रिंग इनपुट =sc.nextLine (); स्ट्रिंग रेगेक्स ="[0-9]+"; // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // स्ट्रिंग मैचर मैचर =पैटर्न। मैचर (इनपुट) में संकलित पैटर्न का मिलान करना; System.out.println ("" मिलान किया गया पाठ:); जबकि (matcher.find ()) { System.out.println (matcher.group ()); } }}आउटपुट
इनपुट टेक्स्ट दर्ज करें:मेल खाने वाला टेक्स्ट:45545
अनिच्छुक परिमाणक − एक गैर-लालची/अनिच्छुक क्वांटिफायर जितना संभव हो उतना कम मेल खाता है, शुरू में गैर-लालची क्वांटिफायर पहले वर्ण से मेल खाता है यदि मैच नहीं हुआ तो यह इनपुट स्ट्रिंग से एक और चरित्र जोड़ता है और मिलान करने का प्रयास करता है। यदि आप "?" लालची क्वांटिफायर के बाद यह अनिच्छुक या गैर लालची क्वांटिफायर बन जाता है।
उदाहरण
आयात करें ।में); System.out.println ("इनपुट टेक्स्ट दर्ज करें:"); स्ट्रिंग इनपुट =sc.nextLine (); स्ट्रिंग रेगेक्स ="[0-9]+?"; // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // स्ट्रिंग मैचर मैचर =पैटर्न। मैचर (इनपुट) में संकलित पैटर्न का मिलान करना; जबकि (matcher.find ()) { System.out.println (matcher.group ()); } }}आउटपुट
इनपुट टेक्स्ट दर्ज करें:1234567812345678
स्वाभाविक परिमाणक − एक स्वामित्व क्वांटिफायर एक लालची क्वांटिफायर के समान होता है, केवल अंतर यह है कि यह शुरू में जितने चरित्र से मेल खाने की कोशिश करता है, और अगर लालची क्वांटिफायर के विपरीत मैच नहीं हुआ तो यह पीछे नहीं हटता।
यदि आप लालची क्वांटिफायर के बाद "+" रखते हैं तो यह पॉज़िटिव क्वांटिफ़ायर बन जाता है। स्वामित्व वाले परिमाणकों की सूची निम्नलिखित है:
उदाहरण
आयात करें ।में); System.out.println ("इनपुट टेक्स्ट दर्ज करें:"); स्ट्रिंग इनपुट =sc.nextLine (); स्ट्रिंग रेगेक्स ="[0-9]++"; // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // स्ट्रिंग मैचर मैचर =पैटर्न। मैचर (इनपुट) में संकलित पैटर्न का मिलान करना; जबकि (matcher.find ()) {System.out.print(matcher.group ()); System.out.println (); } }}आउटपुट
इनपुट टेक्स्ट दर्ज करें:4567845678