Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将时间段与正则表达式匹配?_Python_Regex - Fatal编程技术网

Python 如何将时间段与正则表达式匹配?

Python 如何将时间段与正则表达式匹配?,python,regex,Python,Regex,目前,我使用以下正则表达式查找时间段: .*(30 minutes|1 hour|1 hour 30 minutes|2 hours|2 hours 30 minutes|3 hours|3 hours 30 minutes|4 hours) 我如何在这里简化它并支持更多的时间段(例如,最多24小时)?您可以将30分钟分解如下: (30 minutes|1 hour(?: 30 minutes)?|(?:[2-9]|1[0-9]|2[0-4]) hours(?: 30 minutes)?)

目前,我使用以下正则表达式查找时间段:

.*(30 minutes|1 hour|1 hour 30 minutes|2 hours|2 hours 30 minutes|3 hours|3 hours 30 minutes|4 hours)

我如何在这里简化它并支持更多的时间段(例如,最多24小时)?

您可以将
30分钟
分解如下:

(30 minutes|1 hour(?: 30 minutes)?|(?:[2-9]|1[0-9]|2[0-4]) hours(?: 30 minutes)?)
其中:

  • (?:30分钟)?
    表示选项30分钟
  • (?:[2-9]| 1[0-9]| 2[0-4])
    的范围为2到24小时

我们可以声明,在您的情况下,只有
小时-分钟
序列,没有说
秒,毫秒
?如果您不想检查它是否正确,而只选择
(?:\d+(?:分钟|小时)s??{1,2}
-@RomanPerekhrest,是的