2014-10-07 105 views
0

我需要一個使用xsd驗證日期格式YYYY-MM-DDThh:mm:ssZ的正則表達式。 你能幫我拿到正則表達式嗎?日期格式的正則表達式YYYY-MM-DDThh:mm:ssZ

+4

你試過什麼了?當他們看到你已經付出了努力並且不會爲你寫代碼時,SO上的人更有可能回答你的問題! – 2014-10-07 13:08:55

+0

我認爲你應該使用xs:dateTime [參考這裏](http://www.w3schools.com/schema/schema_dtypes_date.asp),如果你添加一個模式你花費精力驗證XML。 – Xstian 2014-10-07 14:02:46

+0

我創建了一個xsd文件,它將使用LINQ驗證XML輸入文件。 [/.-])(? 0?[1-9] | 1 [012] ????????????????????????????????????????????????????????????????? -3])(:[0-5] \ d){1})$)「/>然而我用來驗證日期格式的正則表達式模式YYYY-MM- DDThh:mm:ssZ未按預期工作。請幫忙。 – user3419159 2014-10-07 14:13:33

回答

0

這個正則表達式只會驗證日期時間,不僅是日期或只有時間。日期格式爲DD/MM/YYYY HH:mm格式並經過月份驗證,一個月內的天數和閏年(29/2)日期字段可以按照匹配的時間段(。),破折號( - )或前向斜槓(/)。年份範圍1900-9999時間爲24小時軍事格式(HH:mm:SS),從00:00:00到23:59:59,其中需要小時和分鐘字段,其中包括小於10小時的前導0。日期時間是用空格隔開上述日期和時間格式,與日第一(DD/MM/YYYY HH:MM)重要提示:您的正則表達式引擎必須支持向前看符號和命名組用這句話

(?n:^(?=\d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.{3,4}(19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00))|0?[1-9]|1\d|2[0-8])(?<sep>[/.-])(?<month>0?[1-9]|1[012])\2(?<year>(19|[2-9]\d)\d{2})(?:(?=\x20\d)\x20|$))?(?<time>([01]\d|2[0-3])(:[0-5]\d){1})$) 
+1

請指定此答案的來源,它只是[來自此處]的複製粘貼(http://regexlib.com/Search.aspx?k=mm%2Fdd%2Fyyyy&c=-1&m=-1&ps=20&p=2) – Habib 2014-10-07 13:12:32

+0

嗨,我在使用上述正則表達式模式時收到錯誤消息。請參考下面的錯誤。格式不正確:與元素類型「null」關聯的屬性「值」的值不能包含「<」字符。請建議。 – user3419159 2014-10-07 14:06:17