我想检查RFC3339中描述的时间戳格式。
以下是示例:
"1996-12-19T16%3A39%3A57-08%3A00"
"1996-12-19T15%3A39%3A27%2E20-08%3A00"
"2013-07-08T18%3A07%3A13Z"
"2013-07-08T18%3A07%3A13.49Z“
Run Code Online (Sandbox Code Playgroud)
我运行了一个re模式,但是它仅适用于第一个和第二个示例。
"\\d{4}-\\d{2}-\\d{2}T\\d{2}%3A\\d{2}%3A\\d{2}(%2E\\d+)?[+-]\\d{2}%3A\\d{2}"
Run Code Online (Sandbox Code Playgroud)
下面的正则表达式将匹配所有上述四个示例,
"^\\d{4}-\\d{2}-\\d{2}T\\d{2}%3A\\d{2}%3A\\d{2}(?:%2E\\d+)?[A-Z]?(?:[+.-](?:08%3A\\d{2}|\\d{2}[A-Z]))?$"
Run Code Online (Sandbox Code Playgroud)
您忘记标记[+-]\\d{2}%3A\\d{2}为可选,也忘记添加正则表达式以匹配Z以及.49Z在第三和第四行。