2014-08-29 47 views

回答

7

試試這個正則表達式

\b[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z\b 

有:

\b - 單詞邊界,檢查什麼,例如 '92014-08-29T06:44:03Z' 無效

[0-9]{n} - 具有n個數字的匹配號碼

如果一個字符串只能包含日期時間而沒有其他字符,然後使用:

^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ 
0

輪圈的答案肯定會工作,這裏有幾個例子。

多一點簡潔:

\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z 

多一點精度:

\d{4}-[01]{1}\d{1}-[0-3]{1}\d{1}T[0-2]{1}\d{1}:[0-6]{1}\d{1}:[0-6]{1}\d{1}Z 

當然,你可以寫使用向前和向後引用真的是比這更有效更先進的表情確保你有一個100%驗證匹配的允許組合,等等...

+0

它的工作..感謝gmiley和輪輞 – 2014-08-29 13:27:35

2

以下正則表達式接受ISO-8601 UTC日期時間字符串,以確保:

格式:YYYY-MM-DDTHH:MM:SSZ
例如:2016-07-08T12:30:00Z

其中:
YYYY = 0000〜9999
MM = 01到12
DD = 01到31個
HH = 00〜23
毫米= 00〜59
SS = 00〜59

\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\dZ 

你可以在這裏測試:https://regex101.com/r/jE4cE4/1