我想过滤掉C#中的特殊字符。 基本上我想允许A-Z,a-z,0-9,连字符,下划线,(,),逗号,空格,\,/,空格。 其他一切都是不允许的。
我提出了以下正则表达式 - >
[a-zA-Z0-9-\b/(),_\s]*
但这似乎没有用。
我错过了什么吗?
答案 0 :(得分:4)
如果您要过滤与 不匹配的字符,请在字符类的开头使用^
:
[^a-zA-Z0-9\-\\/(),_\s]+
+
量词将匹配至少一次不在字符类中的任何字符。此外,连字符是字符类中的元字符,所以你应该逃避你拥有的悬挂字符,就像我在我的例子中所做的那样。此外,如果要将\
包含为允许的字符,还需要在字符类中将其转义为[\\]
。
此外,在字符类(也称为由[ ]
定义的字符 set )中,\b
是退格字符,而不是字边界。
答案 1 :(得分:1)
^[a-zA-Z0-9\-_(),\s\\/]+$
这是全行