using System;
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
namespace regex
{
class MainClass
{
public static void Main(string[] args)
{
Regex exp = new Regex(@"e(-)?m[a@]il(s)?|input|output|padr(ão|ões)|máquina(s)?|reconhecimento",
RegexOptions.IgnoreCase | RegexOptions.Compiled |
RegexOptions.Multiline | RegexOptions.ExplicitCapture);
for (int filecount = 0 ; filecount < 22 ; filecount++)
{
string file = "/home/files/file"+ string.Format("{0:0#}",filecount) + ".txt";
StreamReader reader = new StreamReader(file);
string text = reader.ReadToEnd();
int c=0;
MatchCollection matchList = exp.Matches(text);
c = matchList.Count;
Console.WriteLine("Reading " + file + " -> " + c + " matches");
}
}
}
}
如果我注释掉这一行
c = matchList.Count;
它很快。但我需要知道它找到了多少匹配。
这是最快的方法吗?对于我拥有的文件组,解析每个文件需要14秒。Perl只需1秒钟就可以输出完全相同的信息。
PS:每个文件(文本文件)大约有+/- 1Mb,因此需要处理约20Mb。
谢谢 ;)