gpt4 book ai didi

java - 正则表达式和日期模式匹配

转载 作者:行者123 更新时间:2023-12-02 05:35:14 25 4
gpt4 key购买 nike

下面是我的正则表达式:

Pattern ddpat = Pattern.compile( "(\\d{1,2}/\\d{1,2}/\\d{4})" );

对于无效的日期模式02/29/1975(因为它不是闰年),当我在这个无效日期尝试上述REGEX时,我不知道不希望我的正则表达式匹配这个无效日期。

请建议是否有某种方法可以实现这一目标。

最佳答案

您必须使用 DateFormatter 才能验证日期。

不仅如此,您还必须设置 DateFormat 的 setLenient为 false 以捕获此类错误

public static void main(String[] args) throws ParseException {
String d = "02/29/1975";
DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
sdf.setLenient(false);
Date date = sdf.parse(d);
System.out.println(date);
}

您将看到它抛出ParseException

如果您不设置宽大处理,则 DateFormat 将尝试将其解析为方便但任意的日期,例如:

02/29/1975 可以转换为 03/01/1975

关于java - 正则表达式和日期模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25042531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com