2

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

我将这样的字符列入白名单:

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

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

4

2 回答 2

3

试试这个模式

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

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

于 2014-07-11T11:48:56.027 回答
2

尝试这个 :

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

在此处验证正则表达式

于 2019-10-30T13:00:19.547 回答