Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Regular Expression \Q Metacharacter ใน Java

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