\\ s +和\ s +有什么区别

时间:2018-09-20 01:11:53

标签: java regex whitespace metacharacters

我知道正则表达式之一是“ \ 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”

1 个答案:

答案 0 :(得分:1)

在Java和其他一些编程语言中,反斜杠可以解释为字符串本身的一部分,而不是正则表达式的一部分。因此,字符串中的\\ s表示正则表达式部分时的\ s。这意味着\\只是对反斜杠本身进行了转义,因此它实际上是一个反斜杠。