正则表达式剥离特殊字符

1 regex

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

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

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

想法?

谢谢!

Mar*_*ers 6

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

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

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

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