2017-05-18 3 views
-2

문자열에 대한 테스트 파일을 확인하고이를 줄 단위로 추가하기 위해 C# 프로그램 을 작성할 계획입니다.C# 테스트 파일에서 IP 주소를 추출하십시오.

C#에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까? (다른 언어를 사용해야합니까?)

누군가가 작동하는 코드 스 니펫을 공유 할 수 있습니까?

정규식으로 처리 할 수 ​​있습니까? 모든 사건을 감추고 있습니까?

또는 다른 파일은 경우에 따라 처리해야합니다.

텍스트 파일은 전자 메일 일 수도 있고 IIS 로그 파일 일 수도 있습니다. 당신은 다양한 언어로이 작업을 수행 할 수있는 응답

+1

가능한 중복 http://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip- 주소) –

+0

죄송합니다. 도움이되는지 확인하겠습니다. – abmv

답변

1

에 미리

감사합니다. C#의 정규 표현식은이 문제를 해결할 수 있습니다. 입력 파일 크기와 같은 여러 가지 요소에 따라 여러 가지 방법이 있습니다. 간단한 방법은 소스 파일의 모든 행을 읽고 정규 표현식을 사용하여 각 행을 반복하여 일치를 확인한 다음 일치하는 경우 해당 행을 대상 파일에 씁니다.

이와 비슷한 것이 출발점이 될 수 있습니다.

public static string Foo() 
{ 
    // see http://stackoverflow.com/questions/4890789/regex-for-an-ip-address 
    Regex ip = new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b"); 

    string[] inputLines = File.ReadAllLines("sourcefile.txt"); 
    List<string> outputLines = new List<string>(); 

    foreach (string line in inputLines) 
    { 
     MatchCollection result = ip.Matches(line); 
     if (result[0].Success) outputLines.Add(line); 
    } 

    if (outputLines.Count > 0) 
    { 
     File.AppendAllLines("destinationfile.txt", outputLines); 
    } 
} 
[DNS 호스트 이름 또는 IP 주소와 일치하는 정규 표현식?] (의
관련 문제