我正在查看字符串,以格式为mm/dd/yyyy,m/d/yyyy,m/dd/yyyy或mm/d/yyyy的格式来提取2个日期值。我如何将该条件添加到我的正则表达式?如何在Regex中检查多种日期格式?
private static readonly Regex dateRegex = new Regex(@"\d{2}/\d{2}/\d{4}");
我正在查看字符串,以格式为mm/dd/yyyy,m/d/yyyy,m/dd/yyyy或mm/d/yyyy的格式来提取2个日期值。我如何将该条件添加到我的正则表达式?如何在Regex中检查多种日期格式?
private static readonly Regex dateRegex = new Regex(@"\d{2}/\d{2}/\d{4}");
private static readonly Regex dateRegex = new Regex(@"\d{1,2}/\d{1,2}/\d{4}");
编辑:获得初始的比赛后,尝试使用DateTime.TryParse
以验证它们确实是有效的日期解析。否则,你的正则表达式将需要更复杂(见杰夫熊的答案)。
你打了我几秒钟:-) – Toto 2010-12-07 14:56:59
使用正则表达式这样(option1|option2)
的|
是OR。
但阅读你的例子,我不认为你需要它。试试这个。
(?<month>[0-9]{1,2})\/(?<day>[0-9]{1,2})\/(?<year>[0-9]{4})
在{n,m}
子句,n
是同时m
是最大数目必须匹配的最小数目。
注:有一个帖子在这里的地方,谈论使用[0-9]
代替\d
因为\d
也可以搭配一些Unicode字符的注释。
+1对自己的解释`{N,M}`表达的例子这是什么OP需要。 – Brad 2010-12-08 13:32:12
随着 “OR”。在正则表达式 “|”:
"(regex1 | regex2)"
,如:
Regex dateRegex = new Regex(@"(\d{1,2}/\d{1,2}/\d{4}|\d{1,2}\.d{1,2}\.d{1,4})");
这将做的工作:
\d{1,2}\/\d{1,2}\/\d{4}
请发表您的字符串,其中的值是 – Mariusz 2010-12-07 14:52:42