日期:2014-05-20  浏览次数:21791 次

正则的\Q和\E是做什么用的?
rt~

------解决方案--------------------
使用 \Q 开始,\E 结束,可使中间的标点符号失去特殊意义,将中间的字符作为普通字符。

Quotation
\ Nothing, but quotes the following character
\Q Nothing, but quotes all characters until \E
\E Nothing, 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 或以上的版本!