Java.util.regex.Matcher वर्ग एक इंजन का प्रतिनिधित्व करता है जो विभिन्न मिलान संचालन करता है। इस वर्ग के लिए कोई कंस्ट्रक्टर नहीं है, आप java.util.regex.Pattern वर्ग की माचिस () पद्धति का उपयोग करके इस वर्ग का एक ऑब्जेक्ट बना/प्राप्त कर सकते हैं।
रेगुलर एक्सप्रेशन में, लुकबैक और लुकहेड कंस्ट्रक्शन का उपयोग किसी विशेष पैटर्न से मेल खाने के लिए किया जाता है जो किसी अन्य पैटर्न में पूर्ववर्ती या सफल होता है। उदाहरण के लिए, यदि आपको एक स्ट्रिंग स्वीकार करने की आवश्यकता है जो 5 से 12 वर्णों को स्वीकार करती है तो नियमित अभिव्यक्ति होगी -
"\\A(?=\\w{6,10}\\z)";
डिफ़ॉल्ट रूप से, मैचर क्षेत्र की सीमाएं आगे देखने, पीछे देखने और सीमा मिलान के लिए पारदर्शी नहीं होती हैं यानी ये निर्माण क्षेत्र की सीमाओं से परे इनपुट टेक्स्ट की सामग्री से मेल नहीं खा सकते हैं -
उदाहरण 1
आयात करें 10 वर्णों तक स्ट्रिंग रेगेक्स ="\\ ए (? =\\ w {6,10} \\ z)"; System.out.println ("5 से 12 वर्ण दर्ज करें:"); स्ट्रिंग इनपुट =नया स्कैनर (System.in)। अगला (); // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // एक मैचर ऑब्जेक्ट बनाना मैचर मैचर =पैटर्न। मैचर (इनपुट); // इनपुट स्ट्रिंग के लिए क्षेत्र सेट करना matcher.region(0, 4); // पारदर्शी सीमा पर स्विच करना अगर (matcher.find ()) {System.out.println ("मिलान मिला"); } और { System.out.println ("मिलान नहीं मिला"); } }}आउटपुट
5 से 12 वर्ण दर्ज करें:sampleTextMatch नहीं मिला
TransparentBounds का उपयोग करें () इस वर्ग विधि की विधि एक बूलियन मान स्वीकार करती है और, यदि आप इस विधि के लिए सही पास करते हैं तो वर्तमान मिलानकर्ता पारदर्शी सीमाओं का उपयोग करता है और यदि आप इस विधि को गलत पास करते हैं तो यह गैर-पारदर्शी सीमाओं का उपयोग करता है।
उदाहरण 2
आयात करें 10 वर्णों तक स्ट्रिंग रेगेक्स ="\\ ए (? =\\ w {6,10} \\ z)"; System.out.println ("5 से 12 वर्ण दर्ज करें:"); स्ट्रिंग इनपुट =नया स्कैनर (System.in)। अगला (); // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // एक मैचर ऑब्जेक्ट बनाना मैचर मैचर =पैटर्न। मैचर (इनपुट); // इनपुट स्ट्रिंग के लिए क्षेत्र सेट करना matcher.region(0, 4); // पारदर्शी सीमा मिलानकर्ता पर स्विच करना =matcher.useTransparentBounds(true); if(matcher.find ()) { System.out.println ("मिलान मिला"); } और { System.out.println ("मिलान नहीं मिला"); } }}आउटपुट
5 से 12 वर्ण दर्ज करें:sampletextमिलान मिला