C#Regex检测特殊字符的使用情况

时间:2011-07-04 21:56:09

标签: c# regex special-characters

我想过滤掉C#中的特殊字符。 基本上我想允许A-Z,a-z,0-9,连字符,下划线,(,),逗号,空格,\,/,空格。 其他一切都是不允许的。

我提出了以下正则表达式 - >

[a-zA-Z0-9-\b/(),_\s]*

但这似乎没有用。

我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

如果您要过滤与 不匹配的字符,请在字符类的开头使用^

[^a-zA-Z0-9\-\\/(),_\s]+

+量词将匹配至少一次不在字符类中的任何字符。此外,连字符是字符类中的元字符,所以你应该逃避你拥有的悬挂字符,就像我在我的例子中所做的那样。此外,如果要将\包含为允许的字符,还需要在字符类中将其转义为[\\]

此外,在字符类(也称为由[ ]定义的字符 set )中,\b是退格字符,而不是字边界。

答案 1 :(得分:1)

^[a-zA-Z0-9\-_(),\s\\/]+$

这是全行