首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx模式不断言真

RegEx模式不断言真
EN

Stack Overflow用户
提问于 2018-11-12 12:13:56
回答 3查看 176关注 0票数 2

我试图将下面的字符串与我的java项目中的正则表达式模式进行比较:

2018-11-12 12:02:04.075

我已经将上面的字符串传递到一个在线正则表达式生成器中,以生成以下模式:

((?:2|1)\d{3}(?:-|\/)(?:(?:01-9)|(?:10-2))(?:-|\/)(?:(?:01-9)|(?:1-2)|(?:30-1))(?:T|\s)(?:(?:0-1)|(?:20-3)):(?:0-5):(?:0-5))

下面是我的ASSERT语句,但是当我运行这个测试时,我会得到一个断言错误:

代码语言:javascript
复制
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]))"));

我需要做哪些改变才能通过这个测试?我的行刑有问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-12 12:26:26

尝试使用下列正则表达式之一:

代码语言:javascript
复制
((?: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].(?:[0-9][0-9][0-9])))

代码语言:javascript
复制
((?: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}))

代码语言:javascript
复制
(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{3})
票数 0
EN

Stack Overflow用户

发布于 2018-11-12 12:27:31

您错过了毫秒部分。试试这个:

代码语言:javascript
复制
((?: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})
票数 2
EN

Stack Overflow用户

发布于 2018-11-12 13:03:46

尝尝这个

代码语言:javascript
复制
[12]\\d{3}-(0[1-9]|1[12])-(0[1-9]|1[0-9]|2[0-9]|3[01])\\s([01][0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9]\\.\\d{3}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53261980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档