我想解析一个时间表达式字符串(有 4 组:周(w)、日(d)、小时(h)和分钟(m))。一些例子是:
- -3w 4d 2h 1m
- +3w 2h 1m
- 3d 1m
- 1天
- ...
我想出了这个模式:
([+-]{0,1})([0-9]+)w?\s?(0?[1-9]|[12][0-9]|3[01])d?\s?([01]?[0-9]|2[0-3])h?\s?([0-5][0-9])m?
- 以+或-或无开头
- 一周前的价值是无限的
- 前一天的值是从 0 到 31
- 小时之前的值是从 0 到 23
- 分钟之前的值是从 0 到 59
- 空格(\s)是可选的
但这种模式行不通。请帮忙。对不起我的英语不好!