java - SimpleDateFormat 模式到 Java 正则表达式的转换

标签 java regex simpledateformat

是否有任何工具或库或建议的方法可以将 SimpleDateFormat 类定义的日期模式字符串(例如“dd-mm-yyyy”)一般转换为 Java正则表达式?

网络上有许多示例(Stack Overflow 中的一些示例)“手动”从特定日期模式派生正则表达式,但显然不存在任何自动化方法的实现(即编写执行转换的解析器)。

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

最佳答案

没有自动转换的原因是转换只会替换 d my\d 。对于月份和日期名称的情况,是的,正则表达式可能更有用,但它并不真正适合该特定任务;你会有一个像 (Jan|Feb|...|Dec) 这样的组。正则表达式非常适合查找模式,但不擅长验证这些模式中的数据。

如果您真的下定决心要使用正则表达式,例如您可以查找 dd并将其替换为 (?:[0-2]\d|3[01]) ;该正则表达式组不保证指定的月份允许 31 天。

关于java - SimpleDateFormat 模式到 Java 正则表达式的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702212/

相关文章:

java - 日期格式化程序存在一些问题 : MM/DD/YY not working as expected

java - 如何使 SimpleDateFormat.parse() 失败?

Java 设计 : Enum state?

regex - 电话号码搜索 postgres

javascript - 我如何使用 JavaScript 正则表达式搜索除一个实例之外的所有内容?

javascript - 字符串中棘手的多次替换

android - 解析日期异常 - 无法解析的日期

java - Java 程序的 wso2 权利

java - Eclipse - 为什么推断泛型建议用于 Java 的数组

java - 如何查询 JBoss AS 7 上的现有应用程序?