3

我正在尝试在 Java 中做一个简单的正则表达式,但由于某种原因它失败了。我想做的就是验证一个字符串是否包含大写字母和/或数字。所以 ABC1、111 和 ABC 是有效的,但 abC1 不是。

所以我试着这样做:

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

我确保 e.getId() 有 ABC1 但它仍然抛出异常。我知道这是一件非常小而愚蠢的事情,但我无法弄清楚。

4

2 回答 2

12

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

于 2012-04-16T04:30:02.383 回答
6

您可以尝试以下正则表达式:

[\p{Digit}\p{Lu}]+

IE:

if (!e.getId().matches("[\\p{Digit}\\p{Lu}]+")) {
    throw new ValidationException(validationMessage);
}
于 2012-04-16T04:30:40.367 回答