Java 中的模式 compile() 方法,附帶示例


java.regex 包的模式類是正則表示式的編譯表示。

此類的 compile() 方法接受表示正則表示式的字串值,並返回一個模式物件。

示例

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
   public static void main( String args[] ) {
      //Reading string value
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input string");
      String input = sc.nextLine();
      //Regular expression to find digits
      String regex = "(\d)";
      //Compiling the regular expression
      Pattern pattern = Pattern.compile(regex);
      //Printing the regular expression
      System.out.println("Compiled regular expression: "+pattern.toString());
      //Retrieving the matcher object
      Matcher matcher = pattern.matcher(input);
      //verifying whether match occurred
      if(matcher.find()) {
         System.out.println("Given String contains digits");
      } else {
         System.out.println("Given String does not contain digits");
      }
   }
}

輸出

Enter input string
hello my id is 1120KKA
Compiled regular expression: (\d)
Given String contains digits

此方法有另一個變體,它接受表示標誌的整數值,其中每個標誌指定一個可選條件,例如,CASE_INSENSITIVE 在編譯正則表示式時會忽略大小寫。

示例

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
   public static void main( String args[] ) {
      //Compiling the regular expression
      Pattern pattern = Pattern.compile("[t]", Pattern.CASE_INSENSITIVE);
      //Retrieving the matcher object
      Matcher matcher = pattern.matcher("Tutorialspoint");
      int count = 0;
      while(matcher.find()) {
         count++;
      }
      System.out.println("Number of matches: "+count);
   }
}

輸出

Enter input string
Tutorialspoint
Number of matches: 3

更新時間:2019 年 11 月 19 日

580 次瀏覽

開始你的 職業生涯

透過完成課程取得認證

開始
廣告