正则表达式模式失败

时间:2010-06-11 16:41:53

标签: c# regex

我试图去除字符串中不是字母数字或空格的所有内容,因此我创建了正则表达式

private static Regex _NonAlphaChars = new Regex("[^[A-Za-z0-9 ]]", RegexOptions.Compiled);

然而,当我致电_NonAlphaChars.Replace("Scott,", "");时,它会返回"Scott,"

我错误地认为它与,

不匹配

3 个答案:

答案 0 :(得分:5)

private static Regex _NonAlphaChars =
    new Regex("[^A-Za-z0-9 ]", RegexOptions.Compiled);

答案 1 :(得分:4)

你用双重包围做了一些有趣的事情。将其更改为

[^A-Za-z0-9 ]

将原始表达式放入The Regex Coach,将您的正则表达式解释为:

  

正则表达式是由表达式'[[^ A-Za-z0-9]'和字符']'组成的序列。

相比之下,我写的替代方案的解释是:

  

正则表达式是一个字符类,表示从字符“A”到字符“Z”的字符范围,字符“a”到字符“z”的字符范围,范围字符'0'到字符'9'的字符和字符''。

答案 2 :(得分:0)

试试这个

[^A-Za-z0-9\s]

\ W