如何使用regex来删除特殊字符,而不是替换字符串
本文关键字:替换 字符串 特殊字符 何使用 regex 删除 | 更新日期: 2023-09-27 18:17:23
我的当前方法:
var q = new StringBuilder(query);
return q.Replace("'", " ")
.Replace("'"", " ")
.Replace(":", "")
.Replace("#", " ")
.Replace("/", " ")
.Replace("''", " ")
.Replace(",", " ")
.Replace("&", " ")
.Replace("?", " ")
.Replace("%", " ")
.Replace(".", " ")
.Replace("quot;", " ")
.Replace("-", " ")
.Replace("*", " ")
.ToString().Trim();
我怎么能做到这一点使用正则表达式更好的性能?
编辑:对不起,我想用空格" "替换所有特殊字符。
你可以这样写:
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)
,然后应用正则表达式。
试试这个。
string pattern = @"[^a-zA-Z0-9]";
string test = Regex.Replace("abc*&34567*opdldld(aododod';", pattern, " ");