java - 正则表达式模式未断言为真
问题描述
我正在尝试将以下字符串与我的 java 项目中的正则表达式模式进行比较:
2018-11-12 12:02:04.075
我已将上述字符串传递给在线正则表达式生成器以生成以下模式:
((?:2|1)\d{3}(?:-|\/)(?:(?:0[1-9])|(?:1[0-2]))(?:- |\/)(?:(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))(?:T|\ s)(?:(?:[0-1][0-9])|(?:2[0-3])):(?:[0-5][0-9]):(?: [0-5][0-9]))
下面是我的 ASSERT 语句,但是当我运行这个测试时,我得到一个断言错误:
assertTrue(rs.getString(this.columnName).matches("((?:2|1)\\d{3}(?:-|\\/)(?:(?:0[1-9])|(?:1[0-2]))(?:-|\\/)(?:(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))(?:T|\\s)(?:(?:[0-1][0-9])|(?:2[0-3])):(?:[0-5][0-9]):(?:[0-5][0-9]))"));
我需要进行哪些更改才能通过此测试?我的正则表达式有问题吗?
解决方案
您缺少毫秒部分。尝试这个:
((?:2|1)\\d{3}(?:-|\\/)(?:(?:0[1-9])|(?:1[0-2]))(?:-|\\/)(?:(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))(?:T|\\s)(?:(?:[0-1][0-9])|(?:2[0-3])):(?:[0-5][0-9]):(?:[0-5][0-9])\\.\\d{3})
推荐阅读
- html - Paypal Checkout 窗口在 WKWebView(iOS) 中立即关闭
- python - 如何为特定列创建一个行数大于零的数据框?
- php - Laravel 通过代码运行“迁移:新鲜”返回会话错误
- visual-studio - Visual Studio web 测试事务总请求时间错误
- javascript - 需要创建 PDF 并将其保存到用户选择的位置?
- java - Spring Boot:在用户建立数据库连接后,在运行时创建数据源,该数据源存储在 *.ini 或 *.properties 等文件中
- c# - 文本框不允许字母并显示 NaN
- google-apis-explorer - android-publisher 验证测试
- python - 如何访问 json https://i.instagram.com/api/v1/tags/hashtag/sections/?
- python - 保留对的标题