Subexpression/metacharacter \Q escape ทุกตัวอักษรจนถึง \E ใช้ escape metacharacters ใน regex โดยวางไว้ระหว่าง \Q และ \E เช่น regex [aeiou] match สตริงที่มีสระ
ตัวอย่าง 1 (ไม่ใช้ \Q\E)
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[aeiou]\E จะ match ตัวอักษรลำดับ "[aeiou]" ตรงตัวในสตริง Metacharacters จะสูญเสียความหมายพิเศษ กลายเป็นตัวอักษรธรรมดา
ตัวอย่าง 2 (ใช้ \Q\E)
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");
}
}
}
Output 1
Enter input string: sample Match not occurred
Output 2
Enter input string: The letters [aeiou] are vowels in English alphabet Match occurred