转义角色
通常
要在字面意义上使用正则表达式特定字符(?+|
等),需要对其进行转义。在常见的正则表达式中,这是通过反斜杠\
完成的。但是,由于它在 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