我正在尝试创建一个程序来解析游戏聊天记录中的数据.到目前为止,我已经设法让程序工作并解析我想要的数据,但问题是程序变慢了.
目前解析一个10MB的文本文件需要5秒钟,如果我将RegexOptions.Compiled添加到我的正则表达式,我注意到它下降到3秒.
我相信我已经在我的正则表达式匹配中找到了问题.由于5个正则表达式,当前读取了一行5次,因此当我稍后添加更多时,程序会变得更慢.
我应该怎么做才能使我的程序不会因多个正则表达式而减速?所有建议,使代码更好的表示赞赏!
if (sender.Equals(ButtonParse))
{
var totalShots = 0f;
var totalHits = 0f;
var misses = 0;
var crits = 0;
var regDmg = new Regex(@"(?<=\bSystem\b.* You inflicted )\d+.\d", RegexOptions.Compiled);
var regMiss = new Regex(@"(?<=\bSystem\b.* Target evaded attack)", RegexOptions.Compiled);
var regCrit = new Regex(@"(?<=\bSystem\b.* Critical hit - additional damage)", RegexOptions.Compiled);
var regHeal = new Regex(@"(?<=\bSystem\b.* You healed yourself )\d+.\d", RegexOptions.Compiled);
var regDmgrec = new Regex(@"(?<=\bSystem\b.* You take )\d+.\d", RegexOptions.Compiled);
var dmgList = new List<float>(); //New list for damage …Run Code Online (Sandbox Code Playgroud)