我需要定义一个接受字母数字和以下特殊字符的正则表达式:@#$%&*()-_+][';:?.,!
我想出了:
string pattern = @"[a-zA-Z0-9@#$%&*+\-_(),+':;?.,![]\s\\/]+$";
但这似乎不起作用。有人可以让我知道缺少什么吗?
中间[]
的需要转义*:
\[\]
您可能还想用 . 锚定字符串的开头^
。
* 可能只是]
为了平衡,但我喜欢两者兼而有之。
定义字符类时,您需要转义其中的右括号]
,就像“ ^
”、“ -
”和转义序列\
本身一样,您已正确完成:
string pattern = @"[a-zA-Z0-9@#$%&*+\-_(),+':;?.,![\]\s\\/]+$";
^ ^ ^
其中一些字符需要转义(*、+ 等)。最简单的方法是简单地将它们全部转义:
string pattern = @"[a-zA-Z0-9\@\#\$\%\&\*\(\)\-\_\+\]\[\'\;\:\?\.\,\!]+$";