2010-08-12 6 views
1

데이터의 다른 블록을 포함하는 배열이 있고 날짜와 시간이 포함 된 블록을 추출해야합니다. 내가 어떻게 그럴 수 있니?배열 형식 비교

string[] s={"File", "Block", "Detected:", "2010-08-11", "11:48:50", etc...} 

날짜와 시간은 동일한 위치에 항상은 아니지만 그들은 당신이 날짜와 시간이 배열 내부의 위치에있을 것이라는 점을 알고 있기 때문에 같은 형식

+2

당신은 당신의 코드를 포맷 할 수 있나요? 유효한 것으로 보이지 않습니다. (1) 문자열을 문자열 배열에 할당합니다. (2) 중첩 된 큰 따옴표가 올바르게 보이지 않습니다. – Heinzi

+0

당신이 얻고 싶은 것이 명확하지 않기 때문에 문제를 더 잘 설명하십시오. 또는 날짜 블록이 포함되어 있습니까? 날짜를 얻으려면 어디에서나 동일한 형식의 정규식을 사용하면 Regex를 사용할 수 있습니다. http://gsharper.blogspot.com/2007/03/hi-since-i-always-forget-this-one-ill을 참조하십시오. html은 내가 의미하는 것을 얻는다. – 0x49D1

+0

코드를 그대로 포맷하십시오. 또한이 파일을 C# 파일에 넣고 컴파일러에서이 파일을 유효한 C# 코드 행으로 바꾸도록 도와줍니다. 그것은 좋은 대답을 찾는 데 도움이 될 것입니다. (좋은 질문 => 좋은 답변) – Manfred

답변

0

을해야합니까, 당신은 반복 할 수 배열을 통해 모양이 날짜 또는 시간과 같은 것을 찾으십시오. LINQ를 사용하여

foreach (str in s) { 
    if (Regex.IsMatch(str, @"\d\d\d\d-\d\d-\d\d")) { 
     // found the date 
    } 
} 

또는 : 예

string myDate = (from str in s 
       where Regex.IsMatch(str, @"\d\d\d\d-\d\d-\d\d") 
       select str).First(); 

시간을 식별를 들어, 정규식 \d\d:\d\d:\d\d를 사용할 수 있습니다. (내가 지금 가능한 비주얼 스튜디오를 가지고 있지 않기 때문에 검증되지 않은 모든 코드,.)

0
 string[] sArr = { "File", "Block", "Detected:", "2010-08-11", "11:48:50", "29.01.1987 12:23" }; 

     foreach (var s in sArr) 
     { 
      DateTime d; 

      if (DateTime.TryParse(s, out d)) 
      { 
       Console.WriteLine(d); 
      } 
     }