斜杠 反斜杠 双斜杠 双反斜杠
已经有很多关于这个的文档和资料,先上图和链接
记忆要点:
UNIX中使用的规范方向为正斜杠;正斜杠使用场景较多,反斜杠较少(具体见下图);
双反斜杠:一般在正则中使用 ;Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义
如果你想表示一个数字,那么正则表达式应该是\\d;如果你想插入一个普通的反斜杠,那么正则表达式应该是 \\\\;
根据 Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为 Unicode 转义或其他字符转义。因此必须在字符串字面值中使用两个反斜线,表示正则表达式受到保护,不被 Java 字节码编译器解释。例如,当解释为正则表达式时,字符串字面值 "\b" 与单个退格字符匹配,而 "\\b" 与单词边界匹配。字符串字面值 "\(hello\)" 是非法的,将导致编译时错误;要与字符串 (hello) 匹配,必须使用字符串字面值 "\\(hello\\)"。
拓展:
string.replace(".", "/"); "." 当做普通字符串看待
string.replaceAll("\\.",""); "\\."--当做正则看待
备注:具体当做什么看待,需要看下源码中正则的实现逻辑