我有以下代码:
string pattern = @"(?:\S+\s){1,6}\S*" + search + @"\S*(?:\s\S+){1,6}";
String dbContents = row[2].ToString();
var matches = Regex.Matches(dbContents, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
for (int i = 0; i < matches.Count; i++)
{
if (i == 3)
break;
Contents += String.Format("... {0} ...", matches[i].Value);
}
我想要完成的是在搜索词之前得到一到六个词,在搜索词之后得到 1-6 个词。执行代码时,性能会影响 for 循环“matches.Count”。对于非常大的字符串,它需要一分钟以上的时间来执行。我很困惑为什么以及如何解决这个问题。