Bean に変数名があります。@Pattern
英数字のみを受け入れるように検証を追加したい。
現在、私はこれを持っています。
@NotNull
@Pattern(regexp = "{A-Za-z0-9}*")
String name;
しかし、エラーはInvalid regular expression.
私が試したもの[A-Za-z0-9]
です。しかし、これも機能していません。エラーはありませんが。有効な入力はすべて失敗として表示されます。
Bean に変数名があります。@Pattern
英数字のみを受け入れるように検証を追加したい。
現在、私はこれを持っています。
@NotNull
@Pattern(regexp = "{A-Za-z0-9}*")
String name;
しかし、エラーはInvalid regular expression.
私が試したもの[A-Za-z0-9]
です。しかし、これも機能していません。エラーはありませんが。有効な入力はすべて失敗として表示されます。
このパターンを試してみませんか:^[A-Za-z0-9]*$
または^[A-Za-z0-9]+$
空の結果を避けるために。
文字列に特定の文字のみが含まれていることを確認する場合は、パターンが文字列全体と一致することを確認するために、アンカー (^
文字列の先頭、文字列の末尾) を追加する必要があります。$
中括弧は繰り返しを表すためにのみ使用されます。例: if I want two a
:
a{2}
文字を中に入れることはできません。中括弧で囲まれた文字を見つけることができる唯一の状況は、UNICODE 文字クラスを使用する場合です: \p{L}
(文字の場合L
) \p{Greek}
、、、\p{Arabian}
...
さらに、中かっこで使用できる文字クラス、つまり Alnum を使用することもできます。たとえば、長さが 1 ~ 32 文字の英数字の場合:
@Pattern(regexp = "^[\\p{Alnum}]{1,32}$")
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlを参照してください