我想使用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。
答案 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}))"