2013-04-29 69 views
0

我需要的正则表达式(Regex.Match),用于下面的符号的任何组合CANT创建正则表达式

a-z 
A-Z 
0-9 
()[]_-. 

长度是从2到16个符号。 例子:

asdqwe23)) 
asd[-_]QWE 
0(.)qwe[zz_-]. 

伊夫尝试这种

^[\w\d\r\n\d\[\]\(\)-_]{2,16} 

,但它不工作,它允许@#$%^ * &除第一次任何地方的符号!另外17个长度的字符串也返回isSucsess true。

回答

3

使用这个表达式^[_a-zA-Z\d\[\]\(\)\-\.]{2,16}$

1

使用

var input = "asd[-_]QWE"; 
var result = Regex.Matches(input, @"^[A-Za-z0-9\(\)\[\]_\-\.]{2,16}$"); 
Console.WriteLine(result[0]); 
+0

您正则表达式匹配17+长度字符串 – 2013-04-29 13:59:07

+0

啊多数民众赞成意见的权利感谢 - 编辑 – WhileTrueSleep 2013-04-29 14:04:21