正则表达式用于字母数字和特殊字符

时间:2012-05-17 22:24:09

标签: c# regex vb.net

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

我想出了:

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

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

3 个答案:

答案 0 :(得分:10)

中间的[]需要转义*:

\[\]

您可能还希望使用^锚定字符串的开头。


*可能只是],但我喜欢两者兼顾。

答案 1 :(得分:6)

定义字符类时,您需要转义结束括号],就像" ^"," -& #34;以及你已正确完成的转义序列\本身:

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

答案 2 :(得分:3)

其中一些角色需要转义(*,+等)。最简单的方法是简单地逃避它们:

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