उप-अभिव्यक्ति/मेटाकैरेक्टर "\Q" "\E" तक के सभी वर्णों को एस्केप करता है यानी आप नियमित अभिव्यक्तियों में मेटाकैरेक्टर्स को \Q और \E के बीच रखकर एस्केप कर सकते हैं। उदाहरण के लिए, अभिव्यक्ति [aeiou] इसमें स्वर वर्णों वाली स्ट्रिंग्स से मेल खाती है।
उदाहरण
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleProgram {
public static void main(String args[]) {
String regex = "[aeiou]";
Scanner sc = new Scanner(System.in);
System.out.println("Enter input string: ");
String input = sc.nextLine();
// पैटर्न ऑब्जेक्ट बनाना
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("Match occurred");
} else {
System.out.println("Match not occurred");
}
}
}
आउटपुट
Enter input string: sample Match occurred
लेकिन, यदि आप वही अभिव्यक्ति \Q और \E के भीतर \Q[aeiou]\E के रूप में उपयोग करते हैं, तो यह दी गई स्ट्रिंग में वर्णों के समान क्रम "[aeiou]" से मेल खाता है। संक्षेप में, मेटा कैरेक्टर्स अपना अर्थ खो देते हैं और सामान्य वर्णों के रूप में व्यवहार किए जाएंगे।
उदाहरण
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleProgram {
public static void main(String args[]) {
String regex = "\\Q[aeiou]\\E";
Scanner sc = new Scanner(System.in);
System.out.println("Enter input string: ");
String input = sc.nextLine();
// पैटर्न ऑब्जेक्ट बनाना
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("Match occurred");
} else {
System.out.println("Match not occurred");
}
}
}
आउटपुट 1
Enter input string: sample Match not occurred
आउटपुट 2
Enter input string: The letters [aeiou] are vowels in English alphabet Match occurred