Java转义字符

示例

通常

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

这两个示例不起作用:

"???".replaceAll ("?", "!"); //java.util.regex.PatternSyntaxException
"???".replaceAll ("\?", "!"); //无效的转义序列

这个例子有效

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

分割管道分隔字串

这不会返回预期的结果:

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

这将返回预期结果:

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

转义反斜杠 \

这将产生一个错误:

"\\".matches("\\"); // PatternSyntaxException
"\\".matches("\\\"); // 语法错误

这有效:

"\\".matches("\\\\"); // 真正