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