2017-05-18 8 views
-2

という文字列のテストファイルをチェックして、新しいテストファイル を1行ずつ追加するには、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アドレスと一致する正規表現?](の
関連する問題