将SimpleDateFormat模式转换为Java正则表达式

时间:2014-05-16 18:24:36

标签: java regex simpledateformat

是否存在任何工具或库或建议方法,用于将SimpleDateFormat类定义的日期模式字符串(例如," dd-mm-yyyy")一般转换为{ {1}}正则表达式?

Web中有很多例子(Stack Overflow中的一些例子)"手动"从特定的日期模式派生出一个正则表达式,但显然没有任何自动化方法的实现(即编写一个执行转换的解析器)。

Java类有一个SimpleDateFormat方法,它将字符串日期模式转换为字符数组而不是正则表达式,这可能是因为它早于在java.util.regex包中引入Java发行。

1 个答案:

答案 0 :(得分:1)

没有自动转换的原因是转换只会将d s my替换为\d。对于月份和日期名称的情况,是的,正则表达式可能更有用,但它并不适合该特定任务;你有(Jan|Feb|...|Dec)之类的群组。正则表达式非常棒,可以找到模式,但不能很好地验证这些模式中的数据。

如果您真的死定使用正则表达式,作为示例,您可以在字符串中查找dd并将其替换为(?:[0-2]\d|3[01]);正则表达集团不保证的是指定月份允许31天。