Gói java.util.regex của Java cung cấp các lớp để tìm các mẫu cụ thể trong chuỗi ký tự. Lớp Pattern của gói này là biểu diễn đã biên dịch của một biểu thức chính quy.
Phương thức pattern() của lớp Pattern truy xuất và trả về biểu thức chính quy ở định dạng chuỗi, màPattern hiện tại được biên dịch từ đó.
Ví dụ 1
import java.util.regex.Pattern;
public class PatternExample {
public static void main(String[] args) {
String date = "12/09/2019";
String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
// Tạo đối tượng Pattern
Pattern pattern = Pattern.compile(regex);
if (pattern.matcher(date).matches()) {
System.out.println("Ngày hợp lệ");
} else {
System.out.println("Ngày không hợp lệ");
}
// Truy xuất biểu thức chính quy của pattern hiện tại
String regularExpression = pattern.pattern();
System.out.println("Biểu thức chính quy: " + regularExpression);
}
}
Kết quả
Ngày hợp lệ
Biểu thức chính quy: ^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
Ví dụ 2
import java.util.regex.Pattern;
public class PatternExample {
public static void main(String[] args) {
String input = "Hi my id is 056E1563";
// Biểu thức chính quy sử dụng nhóm
String regex = "(.*)?(\\d+)";
// Tạo đối tượng Pattern
Pattern pattern = Pattern.compile(regex);
if (pattern.matcher(input).matches()) {
System.out.println("Tìm thấy khớp");
} else {
System.out.println("Không tìm thấy khớp");
}
// Truy xuất biểu thức chính quy của pattern hiện tại
String regularExpression = pattern.pattern();
System.out.println("Biểu thức chính quy: " + regularExpression);
}
}
Kết quả
Tìm thấy khớp Biểu thức chính quy: (.*)?(\d+)