Java转义字符
示例
通常
要使用正则表达式中的特定字符(?+|等),按其字面意思,必须对其进行转义。在常规正则表达式中,这是通过反斜杠完成的\。但是,由于它在Java字符串中具有特殊含义,因此必须使用双反斜杠\\。
这两个示例不起作用:
"???".replaceAll ("?", "!"); //java.util.regex.PatternSyntaxException "???".replaceAll ("\?", "!"); //无效的转义序列
这个例子有效
"???".replaceAll ("\\?", "!"); //"!!!"
分割管道分隔字串
这不会返回预期的结果:
"a|b".split ("|"); //[a,|,b]
这将返回预期结果:
"a|b".split ("\\|"); //[a,b]
转义反斜杠\
这将产生一个错误:
"\\".matches("\\"); //PatternSyntaxException "\\".matches("\\\"); //语法错误
这有效:
"\\".matches("\\\\"); //真正