Q 元字元在 Java 中的正則表示式


子表示式/元字元“\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();
      //Creating a Pattern object
      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();
      //Creating a Pattern object
      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

更新於: 2020-02-21

1K+ 瀏覽

開啟你的 職業

完成課程,獲得認證

開始
廣告
© . All rights reserved.