直接上图

正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_正则表达式

 

 

 需要得到: 0:00 0:12 不需要: 05:54:03

 

看一些本以为正确的失败正则:

正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_其他_02正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_Python_03

其实仔细看上图就可以看出端倪,match 1 也就是圆括号的匹配为 4:03, 但整体的匹配又匹配到了 54:03,说明开头的 [^:] 匹配到了 5 , 我们只需让他不匹配到5这个数字即可

正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_正则_04

 

 

 正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_正则表达式_05正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_Python_06

 

 

 

 

 

 

 正确的正则:

[^:\d](\d{1,2}:\d{2})[^:]

正则匹配时间,只匹配中间有一个冒号的时间 HH:MM , 不匹配 HH:MM:SS_正则_07