我有一个正则表达式来验证文本框只允许特定字符。我目前的表达是
pattern = "^([-_,A-Za-z0-9 !@#$%^&()=+;'.~`]{1,60})$";
如果输入的字符不是,则报告错误。这非常有效。现在,我想允许[
,]
,{
和}
(方括号和大括号)作为有效字符。我试过包含这些但是如果我将它们包含在我拥有的模式中,IsMatch
方法总是返回false。我按如下方式添加了它们,
pattern = "^([-_,A-Za-z0-9 !@#$%^&()[]{}=+;'.~`]{1,60})$";
我测试了这个只是字母数字字符串值。 IsMatch
也会返回false。我很确定我对包含的新东西做错了。
任何人都可以告诉我修改后的模式有什么问题吗?
答案 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})$";