正则表达式中的右方括号,是否可以逃脱?

时间:2014-07-11 11:38:29

标签: regex clish

我正在使用clish和正则表达式来输入参数。 http://clish.sourceforge.net/clish-0.7.3/group__clish__ptype.html

我将字符列入白名单:

 pattern="[a-zA-Z0-9\!\[\£\$\%\/\^\_\+\=\#\@\;\,\|\*\{\}\(\)\~\.\>\<\&\-]+"

这很好用,我可以输入任何指定的字符。但是,如果我添加\]\\]以逃避右方括号,则无效。它与[匹配,因此无法输入]之后的任何内容。任何想法如何逃脱它以便输入]作为有效字符? [工作正常。

2 个答案:

答案 0 :(得分:2)

尝试这种模式

pattern="[][a-zA-Z0-9!£$%/^_+=#@;,|*{}()~.&-]+"

文字结束方括号必须位于字符类的第一个位置,以避免使用关闭字符类的结束方括号(因为不允许使用空字符类)的歧义。您可以将开口方括号放在任何您想要的位置(显然不在第一个位置,或在-之后)

答案 1 :(得分:0)

尝试一下:

.*[~!@#$%^&*()_+-={}|\\\]\[:";'<>?,./].*

验证正则表达式Here