2012-12-21 4 views
-1

좋은 아침 여러분 모두에게 세상의 행복 끝의 중간에 날짜를 찾기 나는 비 종말TryParseExact - 텍스트의 라인

관련입니다 나는 내 일을 찾아 노력하고 날짜와 관련된 문제가 텍스트 문서 그것에 날짜가있는 줄에는 앞과 뒤의 텍스트가 있습니다. 그러나 내가 TryParseExact을 사용하는 경우 텍스트 줄의 시작 부분 만 날짜를 찾을 수있는 것처럼 보입니다.

텍스트 줄에 약 20 자의 날짜를 검색하려면 아래 코드를 어떻게 변경해야합니까?

DateTime d = DateTime.Now; 
      var format1 = "dd/MM/yyyy"; 
      var fileDates1 = System.IO.File.ReadAllLines(z) 
          .Where(l => l.Length >= format1.Length 
             && DateTime.TryParseExact(l.Substring(0, format1.Length) 
+0

패턴 무엇입니까? 줄에서 날짜의 위치를 ​​어떻게 알았습니까? – Habib

+0

날짜를 포함하는 샘플 행을 게시 할 수 있습니까? 내가 가지고있는 일부 보고서에서 날짜가오고 있습니다. 여기에 요청한 샘플 행이 있습니다. BW 17/11/1981 bikerben

답변

0

코드는 실제로 행의 시작 부분에서만 확인합니다.

당신은 날짜와 같은 보일 일을 찾을 수있는 정규 표현식을 결합 할 수 있습니다, 그리고 적절한 해석은 "날짜"유효한지 확인 :

DateTime d; 
var format1 = "dd/MM/yyyy"; 
Regex r = new Regex("[0-3][0-9]/[0-1][0-9]/[0-9]{4}"); 
var linesWithDates = System.IO.File.ReadAllLines(z) 
    .Where(l => r.Matches(l).Cast<Match>() 
     .Any(DateTime.TryParseExact(m.Value, format1, ...))); 
1

regular expression을 사용하면 텍스트로 날짜를 찾을 수 있습니다.

String text = File.ReadAllLines(z); 
String pattern = @"\d{2}/\d{2}/\d{4}"; 
String dateString = Regex.Match(text, pattern).Value;