在oracle文档中,下面的语句就在那里。
metachatecters是<([{\^-=$!|]})?*+.>
There are two ways to force a metacharacter to be treated as an ordinary character:
* precede the metacharacter with a backslash, or
* enclose it within \Q (which starts the quote) and \E (which ends it).
我理解的第一种方式。
任何人都可以详细解释第二种方式吗?
由于
答案 0 :(得分:3)
* enclose it within \Q (which starts the quote) and \E (which ends it).
考虑元字符$
,现在您希望将其视为普通字符,使用第二种方法,您必须将$
括在\Q
和\E
之间,如下所示:
"\\Q$\\E" (eqvivalent to `\\$`)
但请注意,您仍然必须使用额外的反斜杠转义\Q
和\E
,因为它们不是有效的转义序列。
答案 1 :(得分:0)
有一种特殊的方法Pattern.quote(String)。这就是内部基本上做的事情
int slashEIndex = s.indexOf("\\E");
if (slashEIndex == -1)
return "\\Q" + s + "\\E";
如果字符串包含"\\E"
个序列,它将逃脱它们