Сопоставлять текст только с символами слова - PullRequest
2 голосов
/ 31 мая 2010

, поэтому я хочу проверить, являются ли все символы в тексте \ w или \ s, если да, то true, если хотя бы один символ не является \ w или \ s, тогда false. Как это можно сделать? :) 1001 *

Язык: javascript

Ответы [ 3 ]

4 голосов
/ 31 мая 2010

Вы хотите сравнить с этим регулярным выражением:

^[\w\s]*$

Конструкция [...] называется "классом символов". ^ и $ - начало и конец якоря строки. Метасимвол * означает «ноль или более повторений». Если вам нужен хотя бы один символ (т. Е. Нет пустой строки), используйте +.

Смотри также


Испытательный жгут

Вот один на Java:

    String[] tests = {
        "",
        " ",
        "blah blah blah",
        "123_456",
        "#@*&#!",
    };
    for (String test : tests) {
        System.out.println("[" + test + "] " + test.matches("^[\\w\\s]*$"));
    }

Это печатает:

[] true
[ ] true
[blah blah blah] true
[123_456] true
[#@*&#!] false

Обратите внимание, что обратная косая черта в регулярном выражении (на вид) удвоена: это потому, что \ является escape-символом в строковых литералах Java. Это удвоение применимо и к нескольким другим языкам.

Кроме того, в Java String.matches выполняется для всей строки, поэтому привязки ^ и $ в этом случае не являются строго необходимыми. Задавая вопрос, связанный с регулярными выражениями, важно отметить, какой язык вы используете, из-за незначительных различий в различных вариантах.

Смотри также

0 голосов
/ 31 мая 2010
^(\w|\s)*$

Используйте + вместо *, если вы не хотите принимать пустую строку.

0 голосов
/ 31 мая 2010

.*[^\w\s].* должен сделать это, но вы не говорите, какой язык вы используете

(если это регулярное выражение совпадает, то строка не проходит проверку)

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