在RegEx中检测角度和花括号

0 .net c# regex validation textbox

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

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

如果输入的字符不是,则报告错误.这非常有效.现在我想允许[,],{}(方大括号)为有效字符.我尝试包含这些但是IsMatch如果我将它们包含在我拥有的模式中,该方法总是返回false.我按如下方式添加了它们,

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

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

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

Ned*_*der 6

您需要转义方括号内的方括号.

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

顺便说一句:{}是大括号,或花括号,而不是尖括号.

  • 在方括号内,只有 - ,^,\和]是特殊的,前两个只是按位置.只有\和]必须在字符类中进行转义. (3认同)