2013-07-29 151 views
-1

我不知道在所有的正則表達式,我需要寫一個正則表達式的代碼,將這種格式驗證日期:正則表達式日期格式?

dd.mm.yyyy hh24:mi:ss

代碼我想:[0-3][0-9].[0-1][0-9].[0-9][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]

然而,當我試圖這樣的樣本數據如:05.02.2009 15:26:39它不起作用。我不明白我做錯了什麼。任何幫助最受讚賞。

+2

你看過Google提供的很多例子嗎? –

+1

'.'匹配任何字符,我想你想要的文字'\ .'。然後'\ s'來匹配空間。 – Ford

+1

正則表達式不足以正確驗證日期/時間 –

回答

1

問題是你的一年(yyyy)你這樣做:[0-9][0-9],也許你想要4個數字? [0-9]{4}

你也應該逃脫你的點,否則會(雖然包括點)匹配一切

[0-3][0-9]\.[0-1][0-9]\.[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] 

與您的樣品輸入:

http://www.debuggex.com/r/wjCqVufPzoQnqsm0

+0

謝謝,病號標記爲正確。 – Bojan

+0

Np,順便說一句,這是一個非常嚴格的正則表達式。取決於你如何使用它,你可能想要使它更加靈活。即使只有像'[0-3]?[0-9]'這樣的東西代替你的''。''。'''',可以幫助你有一點靈活性像「8/10/2009 14:45:12」 – smerny

+0

不,必須是點。我沒有驗證日期,我正在驗證具有該格式的字符串,並且我更改了值以獲取我需要的格式,現在它在我用來測試它的驗證程序中工作。它是一個複雜的項目來解釋,所以我想這個問題會讓我得到我需要的答案,而不必爲項目負擔太多,反正感謝您的幫助。 – Bojan

0

這是一種很難驗證只有一個正則表達式的日期。首先,你需要逃避你的正則表達式的每個.,因爲它是一個元字符。年份模式也是錯誤的:

[0-3][0-9]\.[0-1][0-9]\.[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]