2010-10-26 88 views
2

我搜索了一段時間,似乎無法找到與此相關的任何內容。C#ISO 8601時間間隔驗證

我需要驗證一個ISO 8601時間間隔。有很多關於ISO 8601日期時間的東西,但我特別需要間隔。我正在使用正則表達式,這是我迄今爲止; ((\ d +)M)((\ d +)D)(T)((\ d +)H)((\ d +)H)((\ d +)) M)((\ d +(()(\ d)(\ d))。???)S)$「);

因此,基本上這會檢查輸入字符串是否完全形成,例如P0Y0M1DT1H2M2.01S將被驗證,但是標準規定較小的字符串(例如PT4S)也應該被接受。

如果有人能幫助我,我會非常感激。我一直在閱讀有條件的正則表達式,但不太清楚如何處理它。

非常感謝。

回答

1

我創建了一個正則表達式,以獲取有關信息的時間間隔在ISO 8601快來看看吧:

^(P((?<Years>\d+)Y)?((?<Months>\d+)M)?((?<Days>\d+)D)?)(T((?<Hours>\d+)H)?((?<Minutes>\d+)M)?((?<Seconds>\d+((.)?(\d)?(\d)?))S)?)$