Phương thức compile() của lớp Pattern chấp nhận hai tham số:
- Chuỗi biểu thức chính quy.
- Giá trị nguyên là một trường (field) của lớp
Pattern.
Trường LITERAL cho phép phân tích cú pháp mẫu theo nghĩa đen. Tức là tất cả các ký tự meta và chuỗi thoát của biểu thức chính quy không có ý nghĩa đặc biệt, chúng được xử lý như ký tự thường. Do đó, nếu bạn cần khớp các ký tự meta regex như ký tự bình thường, hãy truyền cờ Pattern.LITERAL vào phương thức compile() cùng với biểu thức chính quy.
Ví dụ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
System.out.println("Nhập dữ liệu:");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String regex = "^[0-9]";
// Tạo Pattern với cờ LITERAL
Pattern pattern = Pattern.compile(regex, Pattern.LITERAL);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
System.out.println(matcher.group());
}
System.out.println("Số lần khớp: " + count);
}
}
Kết quả 1
Nhập dữ liệu: 9848022338 Số lần khớp: 0
Kết quả 2
Nhập dữ liệu: ^[0-9] ^[0-9] Số lần khớp: 1