java.util.regex.Matcher क्लास एक इंजन को दर्शाता है जो विभिन्न मिलान ऑपरेशन करता है। इस क्लास के लिए कोई कंस्ट्रक्टर नहीं है, आप java.util.regex.Pattern क्लास के matches() मेथड का उपयोग करके इस क्लास का ऑब्जेक्ट बना/प्राप्त कर सकते हैं।
मिलान के मामले में, इस (Matcher) क्लास का requireEnd() मेथड सत्यापित करता है कि अधिक इनपुट के मामले में मिलान परिणाम के false होने की संभावना है या नहीं, यदि हां तो यह मेथड true लौटाता है अन्यथा false।
उदाहरण के लिए, यदि आप रेगुलर एक्सप्रेशन "you$" का उपयोग करके इनपुट स्ट्रिंग के अंतिम शब्द को "you" से मिलान करने का प्रयास कर रहे हैं और यदि आपकी पहली इनपुट लाइन "hello how are you" है तो आपको मिलान मिल सकता है लेकिन, यदि आप और वाक्य स्वीकार करते हैं तो नई लाइन(एस) का अंतिम शब्द आवश्यक शब्द ("you") नहीं हो सकता, जिससे आपका मिलान परिणाम false हो जाएगा। ऐसे मामलों में, requireEnd() मेथड true लौटाता है।
इसी तरह, यदि आप इनपुट में किसी विशेष वर्ण से मिलान करने का प्रयास कर रहे हैं जैसे # और यदि आपकी पहली इनपुट लाइन "Hello # how are you" है तो आपको मिलान मिलेगा और, अधिक इनपुट डेटा मैचर की सामग्री को बदल सकता है लेकिन यह परिणाम को नहीं बदलता जो true है। ऐसे परिदृश्य में requireEnd() मेथड false लौटाता है।
उदाहरण 1 (requireEnd() true लौटाता है)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
public static void main(String args[]) {
String regex = "you$";
// उपयोगकर्ता से इनपुट पढ़ना
Scanner sc = new Scanner(System.in);
System.out.println("इनपुट टेक्स्ट दर्ज करें: ");
String input = sc.nextLine();
// Pattern क्लास को इंस्टेंटिएट करना
Pattern pattern = Pattern.compile(regex);
// Matcher क्लास को इंस्टेंटिएट करना
Matcher matcher = pattern.matcher(input);
// यह सत्यापित करना कि मिलान हुआ या नहीं
if(matcher.find()) {
System.out.println("मिलान मिला");
}
boolean result = matcher.requireEnd();
if(result) {
System.out.println("अधिक इनपुट मिलान के परिणाम को false कर सकता है");
} else {
System.out.println("अधिक डेटा के बावजूद मिलान का परिणाम true रहेगा");
}
}
}
आउटपुट
इनपुट टेक्स्ट दर्ज करें: Hello how are you मिलान मिला अधिक इनपुट मिलान के परिणाम को false कर सकता है
उदाहरण 2 (requireEnd() false लौटाता है)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
public static void main(String args[]) {
String regex = "[#]";
// उपयोगकर्ता से इनपुट पढ़ना
Scanner sc = new Scanner(System.in);
System.out.println("इनपुट टेक्स्ट दर्ज करें: ");
String input = sc.nextLine();
// Pattern क्लास को इंस्टेंटिएट करना
Pattern pattern = Pattern.compile(regex);
// Matcher क्लास को इंस्टेंटिएट करना
Matcher matcher = pattern.matcher(input);
// यह सत्यापित करना कि मिलान हुआ या नहीं
if(matcher.find()) {
System.out.println("मिलान मिला");
}
boolean result = matcher.requireEnd();
if(result) {
System.out.println("अधिक इनपुट मिलान के परिणाम को false कर सकता है");
} else {
System.out.println("अधिक डेटा के बावजूद मिलान का परिणाम true रहेगा");
}
}
}
आउटपुट
इनपुट टेक्स्ट दर्ज करें: Hello# how# are you मिलान मिला अधिक डेटा के बावजूद मिलान का परिणाम true रहेगा