Почему регулярное выражение в Java не может распознать \ s как символ пробела? - PullRequest
3 голосов
/ 19 августа 2010

Я читаю со многих веб-страниц (например: http://www.wellho.net/regex/java.html),. Все они упоминали, что \ s может представлять любой символ пространства. Но когда я использую \ s в Java, это не подходящее выражение.

Кто-нибудь знает причину?

1 Ответ

10 голосов
/ 19 августа 2010

Обратные косые черты внутри строк должны быть заключены в кавычки для работы.

Например, отлично работает следующее:

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 не является допустимой escape-последовательностью (для строк, а не для регулярных выражений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...