2012-04-16 188 views
1

我想在Java中做一個簡單的正則表達式,它由於某種原因失敗。我想要做的就是驗證一個字符串是否包含大寫字母和/或數字。所以ABC1,111和ABC是有效的,但abC1不會。Java的正則表達式大寫字母和數字只有

於是,我就這樣做:

if (!e.getId().matches("[A-Z0-9]")) { 
     throw new ValidationException(validationMessage); 
    } 

我確信,e.getId()有ABC1,但它仍然拋出異常。我知道這是非常小而愚蠢的事情,但我無法弄清楚。

+4

你這裏得到一些很好的答案,但沒有說明是你的錯誤是什麼。你只會看的正則表達式匹配一個字符,而不是字符串中的每個字符。 – Cameron 2012-04-16 04:31:54

回答

8

使用^[A-Z0-9]+$作爲匹配模式。但matches方法匹配整個字符串,[A-Z0-9]+就足夠了。

4

你可以用這個嘗試:

if (!e.getId().matches("^[A-Z0-9]+$")) { 
    throw new ValidationException(validationMessage); 
} 
相關問題