我知道正则表达式之一是“ \ s +”,表示一个或多个空格。但在我所看到的许多参照中,
为什么他们使用双反斜杠“ \\ s +”而不是一个反斜杠“ \ s +”?
例如,我在stackoverflow中得到的这段代码示例:
import java.math.*;
import java.util.*;
import static java.util.Arrays.*;
import static java.lang.Math.*;
public class Initials {
public String getInitials(String s) {
String r = "";
for(String t:s.split("\\s+")){
r += t.charAt(0);
}
return r;
}
void p(Object... o) {
System.out.println(deepToString(o));
}
}
此代码的输出为:
示例输入:“ john fitzgerald kennedy”
返回:“ jfk”
答案 0 :(得分:1)
在Java和其他一些编程语言中,反斜杠可以解释为字符串本身的一部分,而不是正则表达式的一部分。因此,字符串中的\\ s表示正则表达式部分时的\ s。这意味着\\只是对反斜杠本身进行了转义,因此它实际上是一个反斜杠。