正则的\Q和\E是做什么用的?
rt~
[解决办法]
使用 \Q 开始,\E 结束,可使中间的标点符号失去特殊意义,将中间的字符作为普通字符。
Quotation
\Nothing, but quotes the following character
\QNothing, but quotes all characters until \E
\ENothing, but ends quoting started by \Q
[解决办法]
Pattern.quote 方法就是给添加上 \Q...\E 引用字符的,可以使得其失去正则表达式的含义,而仅作为普通字符串。
比如,“|”在正则表达式中表示“或”、“可选”的意思,如果要直接匹配“|”字符串的话,可以使用:\Q|\E 即可,在 Java 字符串中写成 String pattern = "\\Q|\\E";
当然了,如果你并不知道哪些是特殊字符,可以很简单地使用 Pattern.quote 方法,API 会帮你搞定一切。
PS:Pattern.quote 在 JDK 6 之前有 BUG,因此请使用 JDK 6 或以上的版本!