Java 正则表达式匹配年月日

介绍

正则表达式是一种强大的文本匹配工具,它可以用于快速、灵活地匹配符合特定模式的字符串。在 Java 中,我们可以使用正则表达式来匹配年月日的格式。

本文将介绍如何使用 Java 正则表达式来匹配年月日,并提供相应的代码示例。

正则表达式规则

根据年月日的格式(YYYY-MM-DD)进行正则表达式的匹配。下面是正则表达式的规则:

  • 年份(YYYY):4 个数字,例如 2021;
  • 月份(MM):2 个数字,01 到 12;
  • 日期(DD):2 个数字,01 到 31;

Java 代码示例

下面是一个使用 Java 正则表达式匹配年月日的示例代码:

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

public class DateValidator {
    private static final String DATE_PATTERN = "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$";

    public static boolean validateDate(String date) {
        Pattern pattern = Pattern.compile(DATE_PATTERN);
        Matcher matcher = pattern.matcher(date);
        return matcher.matches();
    }

    public static void main(String[] args) {
        String[] dates = {"2021-01-01", "2021-13-01", "2021-12-32"};

        for (String date : dates) {
            boolean isValid = validateDate(date);
            System.out.println(date + ": " + (isValid ? "有效日期" : "无效日期"));
        }
    }
}

在上面的代码中,我们使用了 PatternMatcher 类来进行正则表达式的匹配。DATE_PATTERN 是我们定义的正则表达式规则,validateDate 方法用于验证输入的日期是否符合规则。

我们提供了一个包含三个不同日期的数组,然后通过循环遍历每个日期,将其传递给 validateDate 方法进行验证。最后,输出验证结果。

结果分析

运行上面的代码,我们可以得到如下结果:

2021-01-01: 有效日期
2021-13-01: 无效日期
2021-12-32: 无效日期

根据输出结果,我们可以看到第一个日期(2021-01-01)符合规则,而第二个和第三个日期不符合规则。

正则表达式图示

下面是一个饼状图,用于表示正则表达式的匹配结果:

pie
    "有效日期" : 1
    "无效日期" : 2

根据上面的结果分析,我们可以看到有效日期的数量为 1,无效日期的数量为 2。

总结

通过本文,我们学习了如何使用 Java 正则表达式匹配年月日的格式。我们定义了相应的正则表达式规则,并提供了代码示例进行验证。

希望本文对你理解和使用 Java 正则表达式有所帮助!