2013-10-24 178 views

回答

5

我猜你可能要像(如果空字符串是有效的):

^[A-Za-z]*$ 

\w包含数字和_了,所以这将匹配1word

+1

+ for non-empty strings :) –

1

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

^[a-zA-Z]+$ 
  • \w意味着字母,数字和下划线
1

\w不只匹配字母,但是也匹配数字,下划线(_)。只匹配字母,使用方法:

^[A-Za-z]+$ 
1

如果你想有一个非正则表达式的解决方案,或许你可以尝试这样的事:

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

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

随着你的正则表达式上方,将会\p{Alpha}+ ,它匹配一个或多个字母字符。这忽略数字,下划线,空格等。

欲了解更多信息,请参阅部分POSIX字符类(仅美国ASCII)this document

相关问题