我刚刚尝试过几百个(如果不是几千...)RegEx的可用来获得我想要的...但他们都没有工作。Timespan-Regex with Days-Portion
我只是在寻找一个正则表达式,它表示一个时间跨度days.hours:minutes:seconds
: 7.00:00:00将表示 “7天”
这一个可悲的是不起作用:
(\d\d).(\d\d):(([0-6][0])|([0-5][0-9])):(([0-6][0])|([0-5][1-9]))
我刚刚尝试过几百个(如果不是几千...)RegEx的可用来获得我想要的...但他们都没有工作。Timespan-Regex with Days-Portion
我只是在寻找一个正则表达式,它表示一个时间跨度days.hours:minutes:seconds
: 7.00:00:00将表示 “7天”
这一个可悲的是不起作用:
(\d\d).(\d\d):(([0-6][0])|([0-5][0-9])):(([0-6][0])|([0-5][1-9]))
这是因为你的正则表达式模式期待2位数天,而你只有1位数。只需让第一个数字可选?
(\d?\d)\.(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))
或更好,但只使用+匹配一个或更多,因为这种模式仍然不匹配100天
(\d+)\.(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))
接受的答案似乎不适用于基本情况。
继TimeSpan parsing rule我想出了这种模式。
^((?:-?0*\d+\.)?(?:0*)(?:2[0-3]|1[0-9]|[0-9]))(?::0*([0-5]?[0-9]))?(?::0*((?:[0-5]?[0-9])(?:\.\d{0,7})?))?$
注意这种模式将通过10.12
格式,而MSDN标志着这是一个无效的格式。这应该是IMO的有效格式。
这是正确的答案。 –
哦,你当然是对的......谢谢! :) – SeToY