这基本上是我之前的问题的后续。我一直在使用这段代码来替换数组中包含的字符串:
string[] replacements = {"these",
"words",
"will",
"get",
"replaced"};
string newString = "Hello.replacedthesewordswillgetreplacedreplaced";
for (int j = 0; j < replacements.Length; j++)
{
newString = Regex.Replace(newBase,
@"((?<firstMatch>(" + replacements[j] + @"))(\k<firstMatch>)*)",
m => "[" + j + "," + (m.Groups[3].Captures.Count + 1) + "]");
}
运行此代码newString
后将是:
你好。[4,1][0,1][1,1][2,1][3,1][4,2]
这适用于像上面这样的小型替换。它基本上会立即替换字符串 - 但是对于大量替换它往往会变慢。
谁能看到我可以优化它以便更快地替换它的方法?
我假设 for 循环是它减慢速度的原因。数组中总是包含一些不需要替换的字符串(因为它们不包含在主newString
字符串中)所以我想知道是否有办法在 for 循环之前检查它。不过,这可能会变得更慢......
我想不出更好的方法来做到这一点,所以我想我会问。谢谢你们的帮助!:)