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