2017-07-07 100 views
-1

我在C#中學習正則表達式,我已經編寫了代碼來檢查有效的日子,但Regex.Match總是假的。正則表達式匹配日

var pat = @"(today|tomorrow|yesterday)((?:\s*[+-]?\s*\d+\s*[dwym])*)"; // Can not change 

Match match = Regex.Match(value, pat); 

的match.Success始終爲假(值= 2017年7月7日)

哪種格式可以與模式相匹配?

+1

如果你的'value'是'2017-07-07',你的正則表達式不能匹配它。 –

+0

謝謝,但你能解釋更詳細的格式可以匹配的模式 –

+0

事實上,模式甚至不是很接近。 –

回答

2

你究竟在做什麼?從它的外觀來看,你試圖匹配一些文本(今天/明天/昨天)還是特定格式的日期?

試試這個:

(today|tomorrow|yesterday|\d{4}-\d{2}-\d{2}) 

嘗試使用正則表達式的設計師爲好。我使用Rad Software Regular Expression Designer 1.4。

+0

永遠不要相信一個正則表達式設計器。 – revo

+0

@revo爲什麼不能?這對學習很有幫助,你仍然需要手動輸入你的正則表達式......這只是一個幫助測試的工具。 –

+0

感謝您的建議,但我無法更改該模式,因爲它是系統設計,我只是編寫一個函數來檢查一天是否有效。 –