Rim*_*mas 10
试试这个正则表达式
\b[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z\b
Run Code Online (Sandbox Code Playgroud)
那里:
\b - 字边界,检查例如'92014-08-29T06:44:03Z'无效
[0-9]{n} - 匹配数字与n位数
如果字符串必须只包含日期时间而不包含其他字符,则使用:
^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
Run Code Online (Sandbox Code Playgroud)
以下正则表达式接受ISO-8601 UTC日期时间字符串,确保:
格式:YYYY-MM-DDThh:mm:ssZ
例:2016-07-08T12:30:00Z
其中:
YYYY = 0000至9999
MM = 01至12
DD = 01至31
hh = 00至23
mm = 00至59
ss = 00至59
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\dZ
Run Code Online (Sandbox Code Playgroud)
你可以在这里测试一下:https://regex101.com/r/jE4cE4/1
将 @Will Jones 的答案作为 OP 要求的扩展。这应该匹配可选的本地时间说明符和毫秒,即
2020-04-20T09:32:28+00:00
2020-04-20T09:32:28.123Z
两者都匹配。
进一步编写的正面和负面测试用例:https://regex101.com/r/ufFBTA/2
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+|)(?:Z|(?:\+|\-)(?:\d{2}):?(?:\d{2}))
| 归档时间: |
|
| 查看次数: |
11820 次 |
| 最近记录: |