2013-10-24 226 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

相關問題