2012-04-16 218 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); 
} 
相关问题