有没有办法缩短以下内容,以HH格式找到时间:MM:SS?
'^[0-6][0-9]:[0-6][0-9]:[0-6][0-9]$'
答案 0 :(得分: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
答案 1 :(得分:1)
假设您不需要对值进行验证,只是找到看起来像时间的东西,那么:
\d{1,2}:\d{2}:\d{2}
如果您正在搜索文本以查找值,那么除非您的正则表达式在开头和结尾处具有匹配,否则您不希望在^
和$
处锚定,并且您的源数据有各自的行。