I was looking at some of the jdk code. I found these characters. Could someone explain to me what do these mean.
public static String quote(String s) {
i
Java regex engine blocks special interpretation of all meta-characters between \Q
and \E
. For example, [name]
matches a single character ('n'
, 'a'
, 'm'
, or 'e'
), while \Q[name]\E
matches six characters - '['
, 'n'
, 'a'
, 'm'
, 'e'
, and ']'
. See the Special Characters section of the regex tutorial for more detail.
The method makes a regular expression from a string that is presumably provided externally (e.g. entered by a user). Since the string may contain meta-characters, the method encloses the entire string in \Q
and \E
. If the string already contains a \E
, the method inserts the end of the quote, a match of \E
, and a beginning of a new quote for each \E
that it finds..
Well, \Q
and \E
have a special meaning in Java regular expressions...
Most of this method is just working on the tricky edge case of quoting the quote markers \Q
and \E
themselves.
\Q
and \E
is exactly what Pattern.quote()
does, that is to Returns a literal pattern String for the specified String.
For more details see this link:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html