正则表达式允许某些特殊字符和括号

Regex to allow certain special characters along with brakets

我正在研究 asp.net,并且有许多字符串我必须允许字母数字和一些特殊字符,如 -> _ - [ ] ( ) { } , . 我正在使用像

这样的正则表达式
Regex name = new Regex("(a-zA-Z0-9 _ \[ \] \) \( \{ \} \-)*");

它不适合我。谁能建议有效的正则表达式。

使用字符 class 和锚点:

Regex name = new Regex(@"^[a-zA-Z0-9_[\])({}-]*$");

它只允许包含 0+ 个 ASCII 字母、数字或 _[])({}- 符号。

注意字符class里面的-放在字符class的start/end处不需要转义,否则必须转义,与上述模式中转义 ] 字符相同。如果 ] 在 .NET 中位于字符 class 的开头,则不必转义,但是如果您需要在客户端 运行 相同的正则表达式,则不能这样做是因为 JS 正则表达式要求 ] 在字符 class.

内转义

如果您不想允许空字符串,请在 $ 之前的末尾将 * 替换为 +

^是字符串锚点的开始,$是字符串锚点的结束。他们确保除字符 class 中定义的字符外,不能在字符串中使用其他字符。