如何以 0<=mm,ss<=59 的格式验证计时器'hh:mm:ss'中的每个数字?



我想验证我的timerlabel,它的格式是hh:mm:ss,到目前为止我已经通过以下方式完成了:

if re.match("^[0-9]{2}:[0-9]{2}:[0-9]{2}$", self._lineeditDuration.text()):

上一行的问题是用户可以输入00:99:99,这没有意义,因为分和秒可以高于59。

有没有办法验证每一个代表分钟的数字,所以第一个数字可以是0-5,第二个可以是0-9。同样的情况持续几秒钟。

这应该可以工作if re.match("^[0-5][0-9]:[0-5][0-9]:[0-5][0-9]$", self._lineeditDuration.text()):

00:00:00
00:00:01
23:59:17
01:01:01
10:17:25
09:56:17
22:56:59

查找并匹配:^([0-1]?\d|2[0-3]((?::([0-5]?\d((?(?::([0-5]?\d(($
查看测试https://regex101.com/r/qokOxD/1

最新更新