\\s+ 和 \s+ 有什么区别
What is the difference between \\s+ and \s+
我知道正则表达式之一是“\s+”,意思是一个或多个空格。但是在我看到的很多参考文献中,
Why they use double backslash "\s+" instead of just one backslash "\s+" ?
例如我在 Whosebug 中得到的这段代码:
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));
}
}
这段代码的输出是:
Example Input: "john fitzgerald kennedy"
Returns: "jfk"
在Java和其他一些编程语言中,反斜杠可以解释为字符串本身的一部分,而不是正则表达式的一部分。因此,字符串中的 \\s 在进入正则表达式部分时仅表示 \s 。这意味着 \\ 只是转义了反斜杠本身,因此它是一个字面反斜杠。
我知道正则表达式之一是“\s+”,意思是一个或多个空格。但是在我看到的很多参考文献中,
Why they use double backslash "\s+" instead of just one backslash "\s+" ?
例如我在 Whosebug 中得到的这段代码:
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));
}
}
这段代码的输出是:
Example Input: "john fitzgerald kennedy"
Returns: "jfk"
在Java和其他一些编程语言中,反斜杠可以解释为字符串本身的一部分,而不是正则表达式的一部分。因此,字符串中的 \\s 在进入正则表达式部分时仅表示 \s 。这意味着 \\ 只是转义了反斜杠本身,因此它是一个字面反斜杠。