Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Biểu thức chính quy (Regex) Java để kiểm tra ngày và giờ

Để khớp một biểu thức chính quy với chuỗi cho trước, bạn cần thực hiện các bước sau:

  • Biên dịch biểu thức chính quy bằng phương thức compile() của lớp Pattern.
  • Lấy đối tượng Matcher bằng cách truyền chuỗi đầu vào cần thiết làm tham số cho phương thức matcher() của lớp Pattern.
  • Phương thức matches() của lớp Matcher trả về true nếu khớp, ngược lại trả về false. Do đó, hãy gọi phương thức này để xác thực dữ liệu.

Ví dụ: Khớp chỉ ngày

Ví dụ sau là biểu thức chính quy Java chỉ khớp với định dạng ngày:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Sample {
    public static void main(String args[]) {
        // Tạo danh sách để lưu trữ các ngày
        List dates = new ArrayList();
        dates.add("25-12-1990");
        dates.add("25/12/1990");
        dates.add("2010-06-24 06:30");
        dates.add("05-02-1990");
        dates.add("1920-11-03 12:40");

        // Biểu thức chính quy để khớp ngày (định dạng yyyy-MM-dd)
        String regex = "[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])";

        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);

        // Khớp từng ngày
        for (Object date : dates) {
            Matcher matcher = pattern.matcher((CharSequence) date);
            System.out.println(date + ": " + matcher.matches());
        }
    }
}

Kết quả

25-12-1990: false
25/12/1990: false
2010-06-24: true
05-02-1990: false
1920-11-03: true

Ví dụ: Khớp ngày và giờ

Ví dụ sau khớp cả ngày và giờ:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Sample {
    public static void main(String args[]) {
        // Tạo danh sách để lưu trữ ngày giờ
        List dates = new ArrayList();
        dates.add("25-12-1990");
        dates.add("25/12/1990");
        dates.add("2010-06-24 12:30:40");
        dates.add("05-02-1990 44:205:40");
        dates.add("1920-11-03 06:25:40");

        // Biểu thức chính quy để khớp ngày và giờ (yyyy-MM-dd HH:mm:ss)
        String regex = "[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]";

        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);

        // Khớp từng giá trị
        for (Object date : dates) {
            Matcher matcher = pattern.matcher((CharSequence) date);
            System.out.println(date + ": " + matcher.matches());
        }
    }
}

Kết quả

25-12-1990: false
25/12/1990: false
2010-06-24 12:30:40: true
05-02-1990 44:205:40: false
1920-11-03 06:25:40: true