用正则表达式将字符串中的特殊字符替换为空格?asp.net c#

11
string inputString = "1/10 EP Sp'arrowha?wk XT R;TR 2.4GHz Red";
//Characters Collection: (';', '\', '/', ':', '*', '?', ' " ', '<', '>', '|', '&', ''')
string outputString = "1 10 EP Sp arrowha wk XT R TR 2.4GHz Red";

你是否尝试做一些 SQL 转义的处理? - Qtax
我知道我来晚了,但是...这是一个问题吗?有9个赞?天哪! - Ortund
3个回答

24

以下代码的完整声明:

  • 它未经测试
  • new Regex(...) 中的字符转义可能有错;
  • 我实际上不懂C#,但我可以通过谷歌搜索 "C# string replace regex"进入MSDN

Regex re = new Regex("[;\\/:*?\"<>|&']");
string outputString = re.Replace(inputString, " ");

这是正确的代码:

string inputString = "1/10 EP Sp'arrowha?wk XT R;TR 2.4GHz R\\ed";
Regex re = new Regex("[;\\\\/:*?\"<>|&']");
string outputString = re.Replace(inputString, " ");
// outputString is "1 10 EP Sp arrowha wk XT R TR 2.4GHz R ed"

示例: http://ideone.com/hrKdJ

同时参考: http://www.regular-expressions.info/


1
' 移动到字符类内部,我会使用 +,像 "[;\\/:*?\"<>|&']+" - Qtax
@Matt Ball,我知道你可能对原帖作者没有先谷歌搜索感到不满,但这并不意味着你必须表现得刻薄或讽刺。 - Xaisoft
@Xaisoft 这是作为一种披露,没有任何负面意图。我已经重新措辞了,请让我知道它是否仍然有不好的感觉。 - Matt Ball
1
@Matt Ball,一切都好。我没有认为你是在表示否定,我认为你是因为人们在发布之前不至少尝试而感到沮丧。 - Xaisoft
如果我想要替换 [ 和 ] 怎么办? - shindigo

4
string outputString = Regex.Replace(inputString,"[;\/:*?""<>|&']",String.Empty)

0
这是用Java编写的替换特殊字符的代码。
String inputString = "1/10 EP Sp'arrowha?wk XT R;TR 2.4GHz R\\ed";
String re = "[;\\\\/:*?\"<>|&']";
Pattern pattern = Pattern.compile(re);
Matcher matcher = pattern.matcher(inputString);
String outputString = matcher.replaceAll(" ");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接