पैटर्न वर्ग का CANON_EQ फ़ील्ड केवल दो वर्णों से मेल खाता है यदि वे विहित रूप से समान हैं। जब आप इसे कंपाइल () विधि में ध्वज मान के रूप में उपयोग करते हैं, तो दो वर्णों का मिलान किया जाएगा यदि और केवल यदि उनके पूर्ण विहित अपघटन बराबर हों।
जहां विहित अपघटन यूनिकोड पाठ सामान्यीकरण रूपों में से एक है
उदाहरण 1
आयात करें // नियमित अभिव्यक्ति पैटर्न पैटर्न का संकलन =Pattern.compile(regex, Pattern.CANON_EQ); // मैचर ऑब्जेक्ट को पुनः प्राप्त करना मैचर मैचर =पैटर्न। मैचर ("\ u1E03"); if(matcher.matches()) { System.out.println ("मिलान मिला"); } और { System.out.println ("मिलान नहीं मिला"); } }}आउटपुट
मैच मिला
उदाहरण 2
आयात करें // नियमित अभिव्यक्ति पैटर्न पैटर्न का संकलन =Pattern.compile(regex, Pattern.CANON_EQ); // मैचर ऑब्जेक्ट प्राप्त करना स्ट्रिंग [] इनपुट ={"\u00E5", "a\u0311", "a\u0325", "a\u030A", "a\u1E03", "a\uFB03"}; के लिए (स्ट्रिंग एली:इनपुट) {मैचर मैचर =पैटर्न। मैचर (एली); if(matcher.matches()) { System.out.println(ele+" "+regex) के लिए एक मैच है; } और { System.out.println(ele+" "+regex) का मेल नहीं है; } } }}आउटपुट
å a के लिए एक मैच है? a?a के लिए मैच नहीं है? a?a के लिए मैच नहीं है? एक के लिए एक मैच है? a?a के लिए मैच नहीं है? के लिए मैच नहीं है?