Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा रेगेक्स में मैचों () और खोज () के बीच क्या अंतर है?

java.util.regex.Matcher वर्ग एक इंजन का प्रतिनिधित्व करता है जो विभिन्न मिलान संचालन करता है। इस वर्ग के लिए कोई कंस्ट्रक्टर नहीं है, आप java.util.regex.Pattern वर्ग की माचिस () पद्धति का उपयोग करके इस वर्ग का एक ऑब्जेक्ट बना/प्राप्त कर सकते हैं।

दोनों मैचों () और ढूंढें () मैचर क्लास के तरीके इनपुट स्ट्रिंग में रेगुलर एक्सप्रेशन के अनुसार मैच खोजने की कोशिश करते हैं। एक मैच के मामले में, दोनों सही हो जाते हैं और अगर कोई मैच नहीं मिलता है तो दोनों तरीके गलत हो जाते हैं।

मुख्य अंतर यह है कि माचिस () विधि दिए गए इनपुट के पूरे क्षेत्र से मेल खाने की कोशिश करती है, अर्थात यदि आप एक पंक्ति में अंकों की खोज करने का प्रयास कर रहे हैं, तो यह विधि तभी सही होती है जब इनपुट में क्षेत्र की सभी पंक्तियों में अंक हों।

उदाहरण1

आयात करें .*)"; स्ट्रिंग इनपुट ="यह एक नमूना पाठ, 1234 है, जिसके बीच में संख्याएँ हैं।" + "\n यह पाठ की दूसरी पंक्ति है" + "\n यह पाठ में तीसरी पंक्ति है"; // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // एक मैचर ऑब्जेक्ट बनाना मैचर मैचर =पैटर्न। मैचर (इनपुट); if(matcher.matches()) { System.out.println ("मिलान मिला"); } और { System.out.println ("मिलान नहीं मिला"); } }}

आउटपुट

मैच नहीं मिला

जबकि, खोज () विधि अगले सबस्ट्रिंग को खोजने की कोशिश करती है जो पैटर्न से मेल खाती है यानी यदि क्षेत्र में कम से कम एक मैच पाया जाता है तो यह विधि सही हो जाती है।

यदि आप निम्नलिखित उदाहरण पर विचार करते हैं, तो हम एक विशेष रेखा के बीच में अंकों के साथ मिलान करने का प्रयास कर रहे हैं।

उदाहरण2

आयात करें .*)"; स्ट्रिंग इनपुट ="यह एक नमूना पाठ, 1234 है, जिसके बीच में संख्याएँ हैं।" + "\n यह पाठ की दूसरी पंक्ति है" + "\n यह पाठ में तीसरी पंक्ति है"; // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // एक मैचर ऑब्जेक्ट बनाना मैचर मैचर =पैटर्न। मैचर (इनपुट); //System.out.println("वर्तमान सीमा:"+input.substring(regStart, regEnd)); if(matcher.find ()) { System.out.println ("मिलान मिला"); } और { System.out.println ("मिलान नहीं मिला"); } }}

आउटपुट

मैच मिला

  1. जावा में ऐरेलिस्ट और हैशसेट के बीच अंतर

    हैशसेट और ऐरेलिस्ट दोनों ही जावा संग्रह ढांचे के कुछ सबसे महत्वपूर्ण वर्ग हैं। ArrayList और हैशसेट के बीच महत्वपूर्ण अंतर निम्नलिखित हैं। सीनियर। नहीं. कुंजी ऐरेलिस्ट हैशसेट 1 कार्यान्वयन ArrayList सूची इंटरफ़ेस का कार्यान्वयन है। दूसरी ओर हैशसेट एक सेट इंटरफ़ेस का कार्यान्वयन है। 2 आंतरिक क

  1. JRE और JDK में क्या अंतर है?

    जेडीके (जावा डेवलपमेंट किट) में जेआरई सहित जावा अनुप्रयोगों को विकसित करने और चलाने के लिए सभी आवश्यक उपकरण और पुस्तकालय शामिल हैं। जेआरई जावा रन टाइम एनवायरनमेंट सॉफ्टवेयर का एक टुकड़ा है जिसमें जावा प्रोग्राम को निष्पादित करने के लिए आवश्यक जेवीएम और अन्य पुस्तकालय शामिल हैं।

  1. जावा और जावास्क्रिप्ट में क्या अंतर है?

    जैसा कि वेब डेवलपर जेरेमी कीथ ने 2009 में कहा था, जावा जावास्क्रिप्ट के लिए है जैसे हैम हैम्स्टर के लिए है। उस सादृश्य की सटीक सटीकता बहस का विषय है, लेकिन इसके पीछे की भावना ठोस है:जावा और जावास्क्रिप्ट, एक सामान्य भाषाई मूल साझा करने के बावजूद, दो बहुत अलग प्रोग्रामिंग भाषाएं हैं। इन वर्षों में, व