我正在使用asp.net,并且有许多字符串,我必须允许使用字母数字和一些特殊字符,例如 - > _ - [](){} ,. 我正在使用正则表达式
Regex name = new Regex("(a-zA-Z0-9 _ \[ \] \) \( \{ \} \-)*");
它不适合我。任何人都可以建议有效的正则表达式。
答案 0 :(得分:3)
使用带锚点的字符类:
Regex name = new Regex(@"^[a-zA-Z0-9_[\])({}-]*$");
它只允许包含0 + ASCII字母,数字或_
,[
,]
,)
,(
,{{1}的字符串},{
和}
符号。
请注意,在字符类中,-
放置在字符类的开头/结尾时不必转义,否则必须转义它,就像转义-
字符一样在上面的模式中。如果]
位于.NET中字符类的开头,则不必对其进行转义,但是如果需要在客户端运行相同的正则表达式,则不能这样做,因为JS正则表达式需要{ {1}}要在字符类中转义。
如果您不想允许空字符串,请在]
之前将]
替换为*
。
+
是字符串锚点的开头,$
是字符串锚点的结尾。它们确保在字符串中不能使用除字符类中定义的字符之外的字符。