正则表达式模式未断言为真
RegEx pattern not asserting true
我正在尝试将以下字符串与我的 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].(?:[0-9][0-9][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}))
或
(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{3})
您缺少毫秒部分。试试这个:
((?: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})
试试这个
[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}
我正在尝试将以下字符串与我的 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].(?:[0-9][0-9][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}))
或
(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{3})
您缺少毫秒部分。试试这个:
((?: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})
试试这个
[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}