2010-07-30 6 views
1

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 

위의 코드는 2. 또한 내가 날짜 형식이 D.M.YYYY 또는 d.m.yy. 같은 때 patthern이 필요 줘야 만 1 일치를 제공합니다

+0

뿐만 아니라 샘플 데이터를 제공하십시오. :-) – Caladain

답변

0

패턴이 완벽하게 좋아 보인다. 그것은 두 경기를주고있다. 혹시 카운트를 확인하기 위해 다음 라인을 사용하셨습니까?

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

는 I 닷넷 3.5 SD 3을 사용하며 코드는 원하는 결과를 제공한다 (/ O를 SP1 w).

0

이 당신의 패턴을 변경할 수 있습니다

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