转义角色

通常

要在字面意义上使用正则表达式特定字符(?+|等),需要对其进行转义。在常见的正则表达式中,这是通过反斜杠\完成的。但是,由于它在 Java Strings 中具有特殊含义,因此必须使用双反斜杠\\

这两个例子不起作用:

"???".replaceAll ("?", "!"); //java.util.regex.PatternSyntaxException
"???".replaceAll ("\?", "!"); //Invalid escape sequence

这个例子有效

"???".replaceAll ("\\?", "!"); //"!!!"

拆分管道分隔字符串

这不会返回预期的结果:

"a|b".split ("|"); // [a, |, b]

这将返回预期结果:

"a|b".split ("\\|"); // [a, b]

转义反斜杠\

这将给出一个错误:

"\\".matches("\\"); // PatternSyntaxException
"\\".matches("\\\"); // Syntax Error

这有效:

"\\".matches("\\\\"); // true