asp.net mvc正则表达式

asp.net mvc正则表达式,asp.net,regex,asp.net-mvc,Asp.net,Regex,Asp.net Mvc,上面的正则表达式限制了除\之外的所有特殊字符。如何限制它。将\w替换为[a-zA-Z0-9]。快捷方式\w匹配任何单词字符,即字母数字字符和下划线 (@"^\w+(?: \w+){0,8}$" 一旦您确定了如何设置i标志(不区分大小写),就可以使用[a-z0-9]。使用 @"^[a-zA-Z0-9]+(?: [a-zA-Z0-9]+){0,8}$" 允许除\uu之外的所有\w匹配 \W表示“任何与\W不匹配的字符”,因此,将其放入一个求反字符类,并向该类添加一个\u,我们实际上是从\W中减去

上面的正则表达式限制了除\之外的所有特殊字符。如何限制它。

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

(@"^\w+(?: \w+){0,8}$"
一旦您确定了如何设置
i
标志(不区分大小写),就可以使用
[a-z0-9]

使用

@"^[a-zA-Z0-9]+(?: [a-zA-Z0-9]+){0,8}$"
允许除
\uu
之外的所有
\w
匹配

\W
表示“任何与
\W
不匹配的字符”,因此,将其放入一个求反字符类,并向该类添加一个
\u
,我们实际上是从
\W
中减去
\ucode>*

换句话说,
[^\W\u]
意味着“匹配既不是字母数字字符也不是下划线的任何字符”

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

@"^[^\W_]+(?: [^\W_]+){0,8}$"
其中,
[\p{L}\p{N}]
表示“任何Unicode字母或数字”


*在.NET中,
\w
速记比
[a-Za-z0-9.]
匹配更多,尤其是国际(非ASCII)字母

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