【发布时间】:2017-02-11 03:21:46
【问题描述】:
我目前正在处理一个项目,我必须加载并过滤一个 txt 文件,并将过滤后的 txt 保存到一个列表中。目前,我的过滤器正在工作,但它们没有维护 .txt 文件的顺序。
我理解为什么会发生这种情况,因为 try 块一个接一个地运行,但我想知道是否有一种方法可以使我的代码更高效并使其保存所需的行以便它们被阅读。
我认为将模式变量保存在一个变量中可能会更好,但是,我不确定它们应该如何格式化,因为当我尝试组合两个字符串时,Regax.Match 不起作用。
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
namespace program
{
internal class Program
{
private static void Main(string[] args)
{
var inputFile = File.ReadAllText(@"C:\olive.txt");
Filter(inputFile);
}
public static void Filter(string fileToBeFiltered)
{
var sendList = new List<string>();
Match m;
var sendPattern = @"(SEND.+)";
var getPattern = @"(GET.+)"; //+ "(SEND.+)";
try
{
m = Regex.Match(fileToBeFiltered, getPattern);
while (m.Success)
{
var add = m.Groups[1].ToString();
sendList.Add(add);
m = m.NextMatch();
}
}
catch (RegexMatchTimeoutException)
{
Console.WriteLine("The matching operation timed out.");
}
try
{
m = Regex.Match(fileToBeFiltered, sendPattern);
while (m.Success)
{
var add = m.Groups[1].ToString();
sendList.Add(add);
m = m.NextMatch();
}
}
catch (RegexMatchTimeoutException)
{
Console.WriteLine("The matching operation timed out.");
}
foreach (var value in sendList)
Console.WriteLine(value);
Console.WriteLine();
}
}
}
【问题讨论】:
-
SO 是出于调试目的。您也可以尝试codereview.stackexchange.com 进行改进