我正在看一些jdk代码。我找到了这些字符。谁能给我解释一下这些是什么意思。
public static String quote(String s) {
int slashEIndex = s.indexOf("\\E"); // What does this mean. Is this a special char in java. if so what does this do.
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();
}从上面的代码示例中,我能够找出方法中发生的事情,找到\的匹配项,并将它们转换为\E和\Q。有人能解释一下为什么会这样吗?
有关此方法的更多信息,我查看了JDK1.6中的Pattern.quote()方法
发布于 2012-08-13 10:14:46
在Java regular expressions中,\Q和\E有特殊的含义……
这种方法的大部分只是在引用引用标记\Q和\E本身这一棘手的边缘情况下工作。
https://stackoverflow.com/questions/11927452
复制相似问题