如何正则表达一个不包含空格的单词?

时间:2013-10-24 12:35:23

标签: java regex

我想正则表达式值没有空格(^[\S]*$)并且只包含字母(\w+)。但是,如何将这两者合并为一个正则表达式?

预期结果应为:

oneword: true
one word: false
1word: false

5 个答案:

答案 0 :(得分:6)

我想你可能想要类似的东西(如果空字符串有效):

^[A-Za-z]*$

\w也包含数字和_,因此匹配1word

答案 1 :(得分:2)

对于匹配字母,只有这个正则表达式就足够了:

^[a-zA-Z]+$
  • \w表示字母,数字和下划线

答案 2 :(得分:1)

\w不仅匹配字母,还匹配数字,下划线(_)。要仅匹配字母,请使用:

^[A-Za-z]+$

答案 3 :(得分:1)

如果你想要一个非正则表达式的解决方案,也许你可以试试这样的东西:

public boolean valid(final String string){
    for(final char c : string.toCharArray())
        if(!Character.isLetterOrDigit(c))
            return false;
    return true;
}

答案 4 :(得分:1)

使用\p{Alpha}这是一个字母字符:[\p{Lower}\p{Upper}]

使用上述内容,您的正则表达式将为\p{Alpha}+,它与一个或多个字母字符匹配。这会忽略数字,下划线,空格等。

有关详细信息,请参阅this document中的 POSIX字符类(仅限US-ASCII)部分。