2010-07-19 75 views

回答

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)字母。

0

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

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

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