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

时间:2010-08-19 01:39:24

标签: java regex

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

有人知道原因吗?

1 个答案:

答案 0 :(得分:10)

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

例如,以下工作正常:

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

输出:

true

如果您使用类似"\s"的字符串,则应该出现以下错误:

Invalid escape sequence - valid ones are  \b  \t  \n  \f  \r  \"  \'  \\

,因为\s不是有效的转义序列(对于字符串,我的意思是,不是正则表达式)。