2013-07-05 13 views
6

私はbeanに変数名を持っています。私は@Pattern検証を追加して、英数字のみを受け入れたいと思っています。英数字文字列の@Pattern - Beanの検証

現在、私はこれを持っています。

@NotNull 
@Pattern(regexp = "{A-Za-z0-9}*") 
String name; 

しかし、エラーが、私は[A-Za-z0-9]を試してみましたInvalid regular expression. です。しかし、これはどちらもうまくいきません。しかし、エラーはありません。有効な入力が失敗したものとして表示されます。

答えて

19

あなたは、このパターンを試してください:^[A-Za-z0-9]*$

または^[A-Za-z0-9]+$は、空の結果を避けるために。

文字列に特定の文字のみが含まれていることを確認するには、アンカー(文字列の先頭に^、文字列の最後に$)を追加してパターンがすべての文字列と一致するようにする必要があります。私は2つのaをしたい:
a{2}
あなたが内部の文字を入れることはできません

中括弧は数量、例を書くことだけです。また\p{L}\p{Greek}\p{Arabian}、...

3

、あなたはすなわち、中括弧に使用することができます文字クラスを使用することができる:あなたが中括弧内の文字を満たすことができる唯一の例では、ユニコード文字クラスを使用する場合ありアルナム。例えば、包括1〜32文字の長さを有する英数字用:

@Pattern(regexp = "^[\\p{Alnum}]{1,32}$") 

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

参照
関連する問題