繁体   English   中英

用正则表达式替换特殊字符-C#

[英]Replacing Special Characters with regex - C#

我试图通过使用此MSDN示例从字符串中删除特殊字符(有一些例外)。 我正在使用NET Framework v4.0,我的代码如下:

myString = Regex.Replace(myString, @"[^\w !@$*-_.]", "",
                                 RegexOptions.None);

但是,在测试过程中,我注意到在上面列出的字符之上,它并没有替代[] \\或/之类的其他字符。 我认为正则表达式会抓住这些问题,令我担心的是,可能还有其他一些人也没有被抓住。

任何找出原因和解决方法的建议将不胜感激。 非常感谢!

此版本允许您尝试添加的三个其他符号:

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);

注意连字符的转义

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM