4

我需要定义一个接受字母数字和以下特殊字符的正则表达式:@#$%&*()-_+][';:?.,!

我想出了:

string pattern = @"[a-zA-Z0-9@#$%&*+\-_(),+':;?.,![]\s\\/]+$";

但这似乎不起作用。有人可以让我知道缺少什么吗?

4

3 回答 3

10

中间[]的需要转义*:

\[\]

您可能还想用 . 锚定字符串的开头^


* 可能只是]为了平衡,但我喜欢两者兼而有之。

于 2012-05-17T22:25:29.593 回答
6

定义字符类时,您需要转义其中的右括号],就像“ ^”、“ -”和转义序列\本身一样,您已正确完成:

string pattern = @"[a-zA-Z0-9@#$%&*+\-_(),+':;?.,![\]\s\\/]+$";
                                    ^              ^   ^
于 2012-05-17T22:27:01.573 回答
4

其中一些字符需要转义(*、+ 等)。最简单的方法是简单地将它们全部转义:

string pattern = @"[a-zA-Z0-9\@\#\$\%\&\*\(\)\-\_\+\]\[\'\;\:\?\.\,\!]+$";
于 2012-05-17T22:26:34.600 回答