轉義角色

通常

要在字面意義上使用正規表示式特定字元(?+|等),需要對其進行轉義。在常見的正規表示式中,這是通過反斜槓\完成的。但是,由於它在 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