我目前的方法:
var q = new StringBuilder(query);
return q.Replace("'", " ")
.Replace("\"", " ")
.Replace(":", "")
.Replace("#", " ")
.Replace("/", " ")
.Replace("\\", " ")
.Replace(",", " ")
.Replace("&", " ")
.Replace("?", " ")
.Replace("%", " ")
.Replace(".", " ")
.Replace("quot;", " ")
.Replace("-", " ")
.Replace("*", " ")
.ToString().Trim();
如何使用正则表达式来提高性能呢?
编辑:抱歉,我想用空格“”替换所有特殊字符。
答案 0 :(得分:5)
你可以用这个:
string q = Regex.Replace(query, @"[:#/\\]", ".");
q = Regex.Replace(q, @""|['"",&?%\.*-]", " ");
仔细检查您正在做的事情后,您的代码会将多个字符转换为.
,然后将所有.
转换为空格。所以你可以这样做:
string q = Regex.Replace(query, @""|['"",&?%\.*:#/\\-]", " ").Trim();
但是,我不确定你在这里要做什么。我觉得你真正寻找的东西是这样的:
string q = Regex.Replace(query, @"[^\w\s]", "");
"
出现在那里会让我陷入困境,这就是为什么我不确定你在做什么。如果您想摆脱HTML实体,可以先运行query
至HttpUtility.HtmlDecode(string)
,然后应用正则表达式。
答案 1 :(得分:1)
试试这个。
string pattern = @"[^a-zA-Z0-9]";
string test = Regex.Replace("abc*&34567*opdldld(aododod';", pattern, " ");