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 matches() của lớp Pattern chấp nhận:
- Một giá trị chuỗi đại diện cho biểu thức chính quy.
- Một đối tượng của lớp CharSequence đại diện cho chuỗi đầu vào.
Khi được gọi, phương thức này khớp chuỗi đầu vào với biểu thức chính quy. Phương thức trả về giá trị boolean: true nếu khớp, ngược lại false.
Ví dụ
import java.util.Scanner;
import java.util.regex.Pattern;
public class MatchesExample {
public static void main(String[] args) {
// Nhập ngày từ người dùng
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi ngày theo định dạng [dd/mm/yyyy]: ");
String date = sc.next();
String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
// Sử dụng Pattern.matches()
boolean result = Pattern.matches(regex, date);
if (result) {
System.out.println("Ngày hợp lệ");
} else {
System.out.println("Ngày không hợp lệ");
}
}
}
Kết quả 1
Nhập chuỗi ngày theo định dạng [dd/mm/yyyy]: 01/12/2019 Ngày hợp lệ
Kết quả 2
Nhập chuỗi ngày theo định dạng [dd/mm/yyyy]: 2019-21-12 Ngày không hợp lệ