我想正则表达式值没有空格(^[\S]*$
)并且只包含字母(\w+
)。但是,如何将这两者合并为一个正则表达式?
预期结果应为:
oneword: true
one word: false
1word: false
答案 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)部分。