仅将文字与单词字符匹配

时间:2010-05-31 12:15:40

标签: javascript regex

所以我想检查文本中的所有字符是否为\ w或\ s,如果是,则为真,即使一个字符不是\ w或\ s然后为false。怎么做?:)

语言:javascript

3 个答案:

答案 0 :(得分:4)

您希望与此正则表达式匹配:

^[\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

请注意,正则表达式中的反斜杠(看似)加倍:这是因为\是Java字符串文字中的转义字符。这种倍增也适用于其他一些语言。

此外,在Java中,String.matches是针对整个字符串完成的,因此在这种情况下,^$锚点并不是绝对必要的。在询问与正则表达式相关的问题时,重要的是要注意你正在使用的语言,因为不同口味的微小变化。

另见

答案 1 :(得分:0)

.*[^\w\s].*应该这样做,但你不说你正在使用哪种语言

(如果该正则表达式匹配则字符串未通过您的检查)

答案 2 :(得分:0)

^(\w|\s)*$

如果您不想接受空字符串,请使用+代替*