正则表达式剥离特殊字符

时间:2010-04-28 21:07:27

标签: regex

我正在尝试使用regex.replace删除不需要的字符,但我需要考虑空格:

string asdf = "doésn't work?";
string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
Response.Write(Regex.Replace(asdf,regie,"").Replace(" ","-"));

返回doésntwork而不是doésnt-work

想法?

谢谢!

2 个答案:

答案 0 :(得分:6)

您的正则表达式包含一个空格,因此在调用string.Replace之前空格会被删除。

string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
                                              ^ here

从正则表达式中删除它,您的代码应该按预期执行:

string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’\*\?\/\+\|\[\\\\]|\]|\-)";

答案 1 :(得分:0)

你的正则表达式中有一个空格,就在这里:\’ \*