我试图使用this MSDN example从字符串中删除特殊字符(有少数例外)。我使用的是.NET框架v4.0,我的代码如下:
myString = Regex.Replace(myString, @"[^\w !@$*-_.]", "",
RegexOptions.None);
但是,在测试过程中,我注意到在上面列出的字符之上,它并没有像[] \或/那样替换其他字符。我认为这些会被正则表达式捕获,它让我担心可能还有其他人也没有被捕获。
任何有关找出原因以及如何解决问题的建议都将非常感激。非常感谢你!
答案 0 :(得分:1)
此版本允许您尝试添加的其他三个符号:
Regex.Replace(
@"a!s$d*f[a\s/df]a_s.d-f",
@"[^\w\.!$*@-]",
"",
RegexOptions.None)
收益率
a!s$d*fasdfa_s.d-f
您修改的问题是它允许*
和_
之间的所有字符
您可以将您的示例重写为:
myString = Regex.Replace(myString, @"[^\w !@$*\-_.]", "",
RegexOptions.None);
注意连字符的转义