2012-04-16 14 views
1

Javaで単純なRegexを実行しようとしていますが、何らかの理由で失敗しています。私がしたいのは、文字列に大文字や数字が含まれているかどうかを検証することだけです。したがって、ABC1,111およびABCは有効ですが、abC1は有効ではありません。大文字と数字のJava正規表現

だから私はこれを実行しようとしました:

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

私はe.getIdは()ABC1を持っていますが、それはまだ例外をスローすることを確認しました。私はそれが本当に小さくて愚かなものだと分かっていますが、私はそれを理解することができません。

+4

あなたがここにいくつかの良い答えを取得しているが、どれがあなたの間違いが何であるかを説明されていません。あなたが持っている正規表現は、文字列内のすべての文字ではなく、1文字と一致するように見えます。 – Cameron

答えて

8

^[A-Z0-9]+$を一致パターンとして使用してください。 matchesメソッドは文字列全体と一致しますが、[A-Z0-9]+で十分です。

4

あなたはこれを試すことができます:

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