在RegEx中检测角度和花括号

时间:2011-07-21 23:32:56

标签: c# .net regex validation textbox

我有一个正则表达式来验证文本框只允许特定字符。我目前的表达是

pattern = "^([-_,A-Za-z0-9 !@#$%^&()=+;'.~`]{1,60})$";
如果输入的字符不是,则报告错误

。这非常有效。现在,我想允许[]{}(方括号和大括号)作为有效字符。我试过包含这些但是如果我将它们包含在我拥有的模式中,IsMatch方法总是返回false。我按如下方式添加了它们,

pattern = "^([-_,A-Za-z0-9 !@#$%^&()[]{}=+;'.~`]{1,60})$";

我测试了这个只是字母数字字符串值。 IsMatch也会返回false。我很确定我对包含的新东西做错了。

任何人都可以告诉我修改后的模式有什么问题吗?

2 个答案:

答案 0 :(得分:6)

您需要转出方括号内的方括号。

pattern = "^([-_,A-Za-z0-9 !@#$%^&()\[\]{}=+;'.~`]{1,60})$";

BTW:{}是括号或花括号,而不是尖括号。

答案 1 :(得分:3)

如果您希望正则表达式是可移植的,请将结束方括号放在第一位,并将连字符放在最后,如下所述:http://www.regular-expressions.info/posixbrackets.html

pattern = "^([][_,A-Za-z0-9 !@#$%^&(){}=+;'.~`-]{1,60})$";