2010-07-30 101 views
1

我想使用正則表達式搜索字符串中所有可能的日期。 在我的代碼,我有這樣的:正則表達式和日期匹配

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.此外,我需要有一個patthern當日期格式是這樣D.M.YYYY或d.m.yy.

+0

請提供樣本數據爲好。 :-) – Caladain 2010-07-30 12:50:40

回答

0

該模式似乎非常好。這是給兩場比賽。你有沒有機會用下面一行來檢查計數?

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

我在.Net 3.5(w/o sp1)上使用了SD 3,並且您的代碼正在給出您想要的結果。

0

您可以將模式改成這樣:

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