正则表达式允许某些特殊字符和括号
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 中定义的字符外,不能在字符串中使用其他字符。
我正在研究 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 中定义的字符外,不能在字符串中使用其他字符。