我打算写一个c#程序 检查测试文件的IP地址 字符串并将它们添加到新的测试文件中 逐行。
在c#中执行此操作的最佳方法是什么? (我应该使用其他语言)
有人可以共享有效的代码段。
正则表达式可以处理吗?并涵盖所有案件?
或根据具体情况处理不同的文件。
文本文件可以是电子邮件,甚至是IIS日志文件吗?
提前感谢您的回复
答案 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);
}
}