2016-07-25 26 views
-2

我試過這個 - [0-9] {4}) - ([0-9] {2}) - ([0-9] {2})([0-9] {2}):([0-9] {2}):([0-9] {2})....它給我錯誤什麼是「2012-01-29 03:42:22」的正則表達式?

+1

正則表達式看起來基本正確,我沒有看到任何使用lookaheads或lookbehinds。你會得到什麼錯誤,以及你使用的是什麼工具/語言? –

+0

即使在您的代碼中缺少初始的開放式支架? – horcrux

+2

在開頭添加一個'(':https://regex101.com/r/lF3nZ2/1 –

回答

0

使用正則表達式驗證日期和時間永遠不會結束。邊緣情況太多:例如閏年,閏秒(例如2015-06-30 23:59:60),像英格蘭1752年9月的奇怪事件(在3-13的範圍內沒有天)等

最好的事情是解析字符串使用你最喜歡的日期庫並適當地處理任何錯誤。

+0

這個正則表達式並不是要驗證,只是匹配。 –

+0

你能指導我在這裏申請日期庫來進行驗證嗎?比使用正則表達式 – user3766323

1

你有一個不平衡的paranthesis,否則這個正則表達式工作正常。

一個修正的解決辦法是:([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})

我建議使用一種工具來驗證你的正則表達式,像這樣的:regex101.com

您可能還需要檢查你的正則表達式修飾符或一般怪癖您正在使用的語言。

+0

是的它的工作!!謝謝!:) – user3766323

+0

很高興幫助!如果對你來說這個問題是正確的,你會介意將問題標記爲答案嗎?會幫助我成爲一個相當新的SO成員:) – PiMaker