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

जावा रेगुलर एक्सप्रेशन में matches() और find() में क्या अंतर है?


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

Matcher क्लास के matches() और find() दोनों मेथड इनपुट स्ट्रिंग में रेगुलर एक्सप्रेशन के अनुसार मिलान खोजने का प्रयास करते हैं। मिलान के मामले में, दोनों true लौटाते हैं और यदि मिलान नहीं मिलता तो दोनों मेथड false लौटाते हैं।

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

उदाहरण 1 (matches() - पूरे इनपुट का मिलान आवश्यक)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String regex = "(.*)(\\d+)(.*)";
        String input = "This is a sample Text, 1234, with numbers in between. "
            + "\n This is the second line in the text "
            + "\n This is third line in the text";
        
        // पैटर्न ऑब्जेक्ट बनाना
        Pattern pattern = Pattern.compile(regex);
        
        // मैचर ऑब्जेक्ट बनाना
        Matcher matcher = pattern.matcher(input);
        
        if(matcher.matches()) {
            System.out.println("मिलान मिला");
        } else {
            System.out.println("मिलान नहीं मिला");
        }
    }
}

आउटपुट

मिलान नहीं मिला

जबकि, find() मेथड अगले सबस्ट्रिंग को खोजने का प्रयास करता है जो पैटर्न से मिलान करता है यानी यदि क्षेत्र में कम से कम एक मिलान मिलता है तो यह मेथड true लौटाता है।

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

उदाहरण 2 (find() - आंशिक मिलान पर्याप्त)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String regex = "(.*)(\\d+)(.*)";
        String input = "This is a sample Text, 1234, with numbers in between. "
            + "\n This is the second line in the text "
            + "\n This is third line in the text";
        
        // पैटर्न ऑब्जेक्ट बनाना
        Pattern pattern = Pattern.compile(regex);
        
        // मैचर ऑब्जेक्ट बनाना
        Matcher matcher = pattern.matcher(input);
        
        if(matcher.find()) {
            System.out.println("मिलान मिला");
        } else {
            System.out.println("मिलान नहीं मिला");
        }
    }
}

आउटपुट

मिलान मिला

सारांश

  • matches(): संपूर्ण इनपुट अनुक्रम का पैटर्न से मिलान करने का प्रयास करता है।
  • find(): इनपुट अनुक्रम में पैटर्न के अगले सबसीक्वेंस को खोजता है।
  • उपयोग करें matches() जब आपको पूरे स्ट्रिंग को मान्य करने की आवश्यकता हो (जैसे फॉर्म वैलिडेशन)।
  • उपयोग करें find() जब आपको स्ट्रिंग में कहीं भी पैटर्न खोजने की आवश्यकता हो (जैसे टेक्स्ट खोज)।
  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या

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

    JDK (Java Development Kit) में Java एप्लिकेशन विकसित करने और चलाने के लिए आवश्यक सभी टूल्स और लाइब्रेरीज़ होती हैं, जिसमें JRE भी शामिल है। JRE (Java Runtime Environment) एक सॉफ्टवेयर है जिसमें JVM और Java प्रोग्राम चलाने के लिए आवश्यक अन्य लाइब्रेरीज़ होती हैं।

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

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