无法创建正则表达式

时间:2013-04-29 13:45:22

标签: c# .net regex

我需要正则表达式(Regex.Match)用于以下符号的任意组合

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

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

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

我试过这个

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

但它不起作用,它允许!@#$%^& *符号在除1st之外的任何地方。另外17个长度的字符串也返回isSucsess true。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

使用

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