C#从测试文件中提取IP地址

时间:2017-05-18 06:38:55

标签: c# regex windows visual-studio

我打算写一个c#程序 检查测试文件的IP地址 字符串并将它们添加到新的测试文件中 逐行。

在c#中执行此操作的最佳方法是什么? (我应该使用其他语言)

有人可以共享有效的代码段。

正则表达式可以处理吗?并涵盖所有案件?

或根据具体情况处理不同的文件。

文本文件可以是电子邮件,甚至是IIS日志文件吗?

提前感谢您的回复

1 个答案:

答案 0 :(得分: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);
    }
}