我使用 clish 和正则表达式进行参数输入。 http://clish.sourceforge.net/clish-0.7.3/group__clish__ptype.html
我将字符列入白名单,如下所示:
pattern="[a-zA-Z0-9\!\[\£\$\%\/\^\_\+\=\#\@\;\,\|\*\{\}\(\)\~\.\>\<\&\-]+"
这工作正常,我可以输入任何指定的字符。但是,如果我添加 \]
或 \\]
来转义右方括号,则这不起作用。它与 [
匹配,因此无法输入,也不能输入 ]
之后的任何内容。有什么想法如何转义它以便输入 ]
作为有效字符? [
工作正常。
最佳答案
尝试这个模式
pattern="[][a-zA-Z0-9!£$%/^_+=#@;,|*{}()~.&-]+"
文字右方括号必须位于字符类中的第一个位置,以避免与结束字符类的右方括号产生歧义(因为不允许空字符类)。您可以将左方括号放在任何您想要的位置(显然不是在第一个位置,或在 -
之后)
关于regex - 正则表达式中的右方括号无法转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24696834/