2017-05-18 44 views
-2

我打算編寫一個c#程序 來檢查IP地址爲 的測試文件,並將它們逐行添加到新測試文件 。C#從測試文件中提取IP地址

在c#中這樣做的最好方法是什麼? (操作系統我應該使用其他語言)

有人可以共享一個有效的代碼片段。

正則表達式可以處理這個嗎?並涵蓋所有情況?

或根據具體情況處理不同的文件。

該文本文件可以是電子郵件,甚至IIS日誌文件?

在此先感謝您的回覆

+1

可能重複的[正則表達式匹配DNS主機名或IP地址?](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); 
    } 
}