我有这个正则表达式来检查HH:MM:SS格式的时间戳:
(20|21|22|23|[01]\d|\d)(([:][0-5]\d){1,2})
但我想忽略前面带有“run time =”
的时间戳00:01:02 -> YES
compile time = 00:01:02 -> YES (only 00:01:02)
run time = 00:01:02 -> NO
这可以使用正则表达式完成吗?
答案 0 :(得分:0)
negative Lookahead
会这样做:
^(?!run time = ).*?(20|21|22|23|[01]\\d|\\d)(([:][0-5]\\d){1,2})
答案 1 :(得分:0)
将Tuga建议的负面预测与CAUS建议的正确解析HH:MM:SS相结合,并添加一个捕获组,以便您只能提取HH:MM:SS部分:
(?!run time = ).*?((?:2[0-4]|[10]\d):[0-5]\d:[0-5]\d)
答案 2 :(得分:0)
我想忽略前面带有"运行时间="
的时间戳
为了真正满足这一要求,我们需要一个负面的背后隐藏,这是PCRE提供的。
(?<!run time = )(([01]\d|2[0-3])(:[0-5]\d){2})