我正在制作一个替换字符串某个部分的程序。
String x = "hello";
x=x.replaceAll("e","\\\\s");
System.out.println(x);
输出: h \ sllo
但是
System.out.println("\\s");
输出: \ s
为什么我们在第一种情况下需要额外的转义字符。
答案 0 :(得分:4)
\\
个\
个字符
\
,因此您需要2 + 2 = 4个反斜杠来匹配单个\
(2表示字符串,2表示正则表达式引擎) String#replaceAll
方法的第二个参数也由正则表达式引擎解释,因为可能存在反向引用,这也是同样的正则表达式规则也适用于替换字符串的原因。\
的替换字符串,后跟文字s