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
廣告