asp.net mvc正则表达式

时间:2010-07-19 12:14:54

标签: asp.net regex asp.net-mvc

(@"^\w+(?: \w+){0,8}$"

上述正则表达式限制除_之外的所有特殊字符。我将如何限制它。

2 个答案:

答案 0 :(得分:2)

使用

@"^[^\W_]+(?: [^\W_]+){0,8}$"

允许\w匹配除_以外的所有内容。

\W表示“任何与\w不匹配的字符”,因此通过将其放入否定字符类并向该类添加_,我们就能有效从_。*

中减去\w

换句话说,[^\W_]表示“匹配任何既不是非字母数字字符也不是下划线的字符”。

另一种方式(可能更明确,更容易理解)是使用Unicode属性:

@"^[\p{L}\p{N}]+(?: [\p{L}\p{N}]+){0,8}$"

其中[\p{L}\p{N}]表示“任何Unicode字母或数字”。

<小时/> *在.NET中,\w速记比[A-Za-z0-9_]更多,特别是国际(非ASCII)字母。

答案 1 :(得分:0)

\w替换为[a-zA-Z0-9]。快捷方式\w匹配任何单词字符,即字母数字字符和下划线。

@"^[a-zA-Z0-9]+(?: [a-zA-Z0-9]+){0,8}$"

一旦弄清楚如何设置[a-z0-9]标志(不区分大小写),就可以使用i