Regex 用于去除特殊字符的正则表达式

Regex 用于去除特殊字符的正则表达式,regex,Regex,我试图使用regex.replace删除不需要的字符,但我需要考虑空格: string asdf = "doésn't work?"; string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)"; Response.Write(Regex.Replace(asdf,regie,"").Replace(" ","-")); string asdf=“doésn't work?”; 字符串re

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

string asdf = "doésn't work?";
string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
Response.Write(Regex.Replace(asdf,regie,"").Replace(" ","-"));
string asdf=“doésn't work?”;
字符串regie=@“([{}\(\)\^$&.\%\!@=:;,~`'\'\*\?\/\+\\\\\[\\\\]\]\-”;
Write(Regex.Replace(asdf,regie,“”).Replace(“,”-”);
返回doésntwork而不是doésnt work

想法


谢谢

正则表达式包含一个空格,因此在调用
字符串.Replace
之前,空格会被去掉

string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
                                              ^ here
string regie=@“([{}\(\)\^$&.\%\\!@=:;,~`'\'\*\?\/\+\\\\[\\\\]\]\\-”;
^这里
将其从正则表达式中删除,您的代码将执行预期的操作:

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

您的正则表达式包含一个空格,因此在调用
字符串.Replace
之前,空格会被去掉

string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
                                              ^ here
string regie=@“([{}\(\)\^$&.\%\\!@=:;,~`'\'\*\?\/\+\\\\[\\\\]\]\\-”;
^这里
将其从正则表达式中删除,您的代码将执行预期的操作:

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

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

这可以帮您省去尴尬:这可以帮您省去尴尬: