【发布时间】:2014-02-17 03:52:18
【问题描述】:
我正在制作一个替换字符串特定部分的程序。
String x = "hello";
x=x.replaceAll("e","\\\\s");
System.out.println(x);
输出:h\sllo
但对于
System.out.println("\\s");
输出:\s
为什么我们在第一种情况下需要额外的转义字符。
【问题讨论】:
标签: java regex string replaceall
我正在制作一个替换字符串特定部分的程序。
String x = "hello";
x=x.replaceAll("e","\\\\s");
System.out.println(x);
输出:h\sllo
但对于
System.out.println("\\s");
输出:\s
为什么我们在第一种情况下需要额外的转义字符。
【问题讨论】:
标签: java regex string replaceall
\\ 来表示正则表达式中的单个 \ 字符\,因此您需要 2+2=4 个反斜杠来匹配单个 \(2 个用于 String,2 个用于正则表达式引擎)String#replaceAll 方法的第二个参数,这也是相同的正则表达式规则也适用于替换字符串的原因。\ 后跟文字 s 的替换字符串
【讨论】:
matching 而不是replacing(现已修复),但我在回答之前确实阅读了这个问题。