2013-07-05 1 views
6

빈에 변수 이름이 있습니다. 나는 @Pattern 검증을 추가하여 영숫자 만 허용합니다.영숫자 문자열을위한 @ 패턴 - 빈 검증

현재이 사진이 있습니다.

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

는하지만 오류가 Invalid regular expression. 내가 [A-Za-z0-9]을 시도합니다. 그러나 이것도 작동하지 않습니다. 오류는 없습니다. 유효한 입력을 실패한 것으로 표시합니다.

답변

19

당신은이 패턴을 시도 마십시오 ^[A-Za-z0-9]*$

또는 ^[A-Za-z0-9]+$는 빈 결과를 피하기 위해. 당신이 문자열이 특정 문자가 포함되어 있는지 확인하려면

, 당신은 앵커 당신의 패턴이 모든 문자열과 일치하는지 확인하기 위해 (문자열의 끝 부분의 캐릭터 라인의 시작에 대한 ^, $)를 추가해야합니다.

중괄호 양, 예를 쓰기 만입니다 : 내가 두 a를 원하는 : 당신은 내 편지를 넣을 수 없습니다
a{2}
. \p{L}, \p{Greek}, \p{Arabian}, 즉,

3

또한, 당신은 중괄호로 사용하는 문자 클래스를 사용할 수 있습니다 ... : 당신은 유니 코드 문자 클래스를 사용할 때 중괄호 안에 문자를 충족시킬 수있는 유일한 경우는 Alnum. 예를 들어, 1 개 32 사이의 문자 길이를 갖는 영숫자 문자를 포괄적으로 :

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

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

참조