最简单的方法就是分割字符串 , 然后使用 ^\d+ 匹配数字,然后进行测试。更复杂的解决方案是下面的正则表达式,它将天数捕获到不同的组中。如果设置了组,则表示以下值:
,
^\d+
00:00:00
06:23:59
07:00:00
13:23:59
请参阅此处使用的正则表达式
^(?:([0-6])|([7-9]|1[0-3])|(\d+)) days, (\d+) hours, (\d+) minutes$
^
([0-6])
([7-9]|1[0-3])
(\d+)
days,
hours,
minutes
$
匹配不到7天:
^[0-6] days, \d+ hours, \d+ minutes
要匹配7到14天:
^([7-9]|1[0-3]) days, \d+ hours, \d+ minutes
要匹配14天或更长时间:
^(1[4-9]|[2-9]\d|\d{3,}) days, \d+ hours, \d+ minutes
但是,为简单起见,这些模式不包括确切的结束天数。例如, 7 days, 0 hours, 0 minutes 将匹配第二个模式,而不是第一个模式。这就是为什么我把第一种模式叫做“不到7天”而不是“7天或更短”。
7 days, 0 hours, 0 minutes
同样的, 14 days, 0 hours, 0 minutes 将匹配第三种模式而不是第二种模式。如果你需要它在这两个边缘情况下以另一种方式工作,那将大大复杂化模式。
14 days, 0 hours, 0 minutes