0

有没有办法缩短以下时间以找到 HH:MM:SS 格式的时间?

'^[0-6][0-9]:[0-6][0-9]:[0-6][0-9]$'
4

2 回答 2

2

如果有的话,它应该更长,因为69:69:69作为时间没有意义。

([01]\d|2[0-3]):([0-5]\d|60):([0-5]\d|60)
allow 00-23     00-59 and 60 00-59 and 60
                ~~~~~~~~~~~~~~~~~~~~~~~~~
                60 is useful for supporting leap seconds

如果你真的想要你的例子,但更短,你可以这样做:

[0-6]\d(:[0-6]\d){2}
     ~~          ~~~
      |          exactly two repetitions of preceding () block
      Matches digits in many regex implementations
于 2012-04-25T00:58:50.197 回答
1

假设您不需要对值进行验证,而只需找到看起来像时间的东西,那么:

\d{1,2}:\d{2}:\d{2}

如果您正在搜索文本以查找您不想锚定的值^$除非您的正则表达式风格在行首和行尾匹配,并且您的源数据在它们自己的行中有这些。

于 2012-04-25T01:06:12.050 回答