我剛剛嘗試過幾百個(如果不是幾千...)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