正则表达式匹配日

问题描述:

我在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

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

你究竟在做什么?从它的外观来看,你试图匹配一些文本(今天/明天/昨天)还是特定格式的日期?

试试这个:

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

尝试使用正则表达式的设计师为好。我使用Rad Software Regular Expression Designer 1.4。

+0

永远不要相信一个正则表达式设计器。 – revo

+0

@revo为什么不能?这对学习很有帮助,你仍然需要手动输入你的正则表达式......这只是一个帮助测试的工具。 –

+0

感谢您的建议,但我无法更改该模式,因为它是系统设计,我只是编写一个函数来检查一天是否有效。 –