正则表达式和日期匹配

时间:2010-07-30 12:44:11

标签: c# regex

我想使用Regex在字符串中搜索所有可能的日期。 在我的代码中我有这个:

String dateSearchPattern = @"(?<Day>\d{2}).(?<Month>\d{2}).(?<Year>\d{4})|(?<Day>\d{2}).(?<Month>\d{2}).(?<Year>\d{2})";

// date format: dd.mm.yyyy or d.m.yyyy or dd.mm.yy or d.m.yy
String searchText = "20.03.2010.25.03.10";

Regex.Matches(searchText, dateSearchPattern); // the matching SHOULD give a count of 2

上面的代码只给出了1个匹配,它应该给2.当日期格式像d.m.yyyy或d.m.yy时,我需要有一个patthern。

2 个答案:

答案 0 :(得分:0)

模式似乎完全没问题。它给了两场比赛。您是否有机会使用以下行检查计数?

var match = Regex.Matches(searchText, dateSearchPattern);
Console.WriteLine(match.Count);

我在.Net 3.5(没有sp1)上使用了SD 3,你的代码正在提供你想要的结果。

答案 1 :(得分:0)

您可以将模式更改为:

"(?<Day>\d{1,2}).(?<Month>\d{1,2}).(?:(?<Year>\d{4})|(?<Year>\d{2}))"