我想要一个regexp来匹配HH:MM格式的时间。以下是我所拥有的,而且它很有效:
^[0-2][0-3]:[0-5][0-9]$
它匹配从00:00到23:59的所有内容。
但是,我想改变它,所以0:00和1:00等也匹配,以及00:00和01:30。也就是说,让最左边的数字是可选的,以匹配HH:MM和H:MM。
有什么想法可以改变吗?我需要这个工作在javascript以及php。
我想要一个regexp来匹配HH:MM格式的时间。以下是我所拥有的,而且它很有效:
^[0-2][0-3]:[0-5][0-9]$
它匹配从00:00到23:59的所有内容。
但是,我想改变它,所以0:00和1:00等也匹配,以及00:00和01:30。也就是说,让最左边的数字是可选的,以匹配HH:MM和H:MM。
有什么想法可以改变吗?我需要这个工作在javascript以及php。
当前回答
看看这个
/^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]|5[0-9])$/
其他回答
试试下面的方法
^([0-2][0-3]:[0-5][0-9])|(0?[0-9]:[0-5][0-9])$
注意:我假设是javascript的正则表达式引擎。如果与此不同,请告诉我。
要验证24小时时间,请使用:
^([0-1]?[0-9]|2?[0-3]|[0-9])[:\-\/]([0-5][0-9]|[0-9])$
接受:
22:10
2:10
2/1
...
但不接受:
25:12
12:61
...
你可以使用以下正则表达式:
^[0-1][0-9]:[0-5][0-9]$|^[2][0-3]:[0-5][0-9]$|^[2][3]:[0][0]$
您的代码将无法正常工作,因为它不能用于01:00类型格式。您可以修改如下。
pattern =r"^(0?[1-9]|1[0-2]):[0-5][0-9]$"
为了不那么复杂,我们可以使用一个变量来定义我们的工作时间限制。此外,我们可以添加经络以获得更准确的结果。
hours_limit = 12
pattern = r"^[1-hours_limit]:[0-5][0-9]\s?[AaPp][Mm]$"
print(re.search(pattern, "2:59 pm"))
你可以使用以下正则表达式:
^[0-2]?[0-3]:[0-5][0-9]$
我所做的唯一修改是最左边的数字是可选的。正则表达式的其余部分是相同的。