Well the source code of Pattern.quote
is available and looks like this:
public static String quote(String s) {
int slashEIndex = s.indexOf("\E");
if (slashEIndex == -1)
return "\Q" + s + "\E";
StringBuilder sb = new StringBuilder(s.length() * 2);
sb.append("\Q");
slashEIndex = 0;
int current = 0;
while ((slashEIndex = s.indexOf("\E", current)) != -1) {
sb.append(s.substring(current, slashEIndex));
current = slashEIndex + 2;
sb.append("\E\\E\Q");
}
sb.append(s.substring(current, s.length()));
sb.append("\E");
return sb.toString();
}
Basically it relies on
Q Nothing, but quotes all characters until E
E Nothing, but ends quoting started by Q
and has a special treatement of the case in which E
is present in the string.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…