我有一个字符串。我需要从这个原始字符串中替换给定字符串数组的所有实例 - 我该怎么做?
目前我正在使用...
var inputString = "this is my original string.";
var replacement = "";
var pattern = string.Join("|", arrayOfStringsToRemove);
Regex.Replace(inputString, pattern, replacement);
这工作正常,但不幸的是,当有人试图删除在正则表达式中具有特殊含义的字符时,它会崩溃。
我应该怎么做?有没有更好的办法?
最佳答案
使用 Regex.Escape 构建模式:
StringBuilder pattern = new StringBuilder();
foreach (string s in arrayOfStringsToRemove)
{
pattern.Append("(");
pattern.Append(Regex.Escape(s));
pattern.Append(")|");
}
Regex.Replace(inputString, pattern.ToString(0, pattern.Length - 1), // remove trailing |
replacement);
关于c# - 使用正则表达式删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/358912/