是否存在任何工具或库或建议方法,用于将SimpleDateFormat
类定义的日期模式字符串(例如," dd-mm-yyyy")一般转换为{ {1}}正则表达式?
Web中有很多例子(Stack Overflow中的一些例子)"手动"从特定的日期模式派生出一个正则表达式,但显然没有任何自动化方法的实现(即编写一个执行转换的解析器)。
Java
类有一个SimpleDateFormat
方法,它将字符串日期模式转换为字符数组而不是正则表达式,这可能是因为它早于在java.util.regex包中引入Java发行。
答案 0 :(得分:1)
没有自动转换的原因是转换只会将d
s m
和y
替换为\d
。对于月份和日期名称的情况,是的,正则表达式可能更有用,但它并不适合该特定任务;你有(Jan|Feb|...|Dec)
之类的群组。正则表达式非常棒,可以找到模式,但不能很好地验证这些模式中的数据。
如果您真的死定使用正则表达式,作为示例,您可以在字符串中查找dd
并将其替换为(?:[0-2]\d|3[01])
;正则表达集团不保证的是指定月份允许31天。