为什么Java中的正则表达式无法将\ s识别为空格字符?

Jia*_*Jia 3 java regex

我从很多网页上读到(例如:http://www.wellho.net/regex/java.html),他们都提到它可以代表任何空间字符.但是当我在Java中使用\时,它不是一个合格的表达式.

谁知道原因?

pax*_*blo 10

字符串中的反斜杠需要引用才能工作.

例如,以下工作正常:

public class testprog {
    public static void main(String args[]) {
        String s = "Hello there";
        System.out.println (s.matches(".*\\s.*"));
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

true
Run Code Online (Sandbox Code Playgroud)

如果你使用类似的字符串"\s",你应该得到一个错误:

Invalid escape sequence - valid ones are  \b  \t  \n  \f  \r  \"  \'  \\
Run Code Online (Sandbox Code Playgroud)

从你的编译器,因为\s它不是一个有效的转义序列(对于字符串,我的意思是,不是正则表达式).