2012-06-04 1 views
0

나 최대 절전 모드 콩 Validation.here를 사용하여 내 콩에 정규 표현식을 추가하려고 내 코드잘못된 탈출 sequencein의 javax.validation.constraints

@NotNull(message = "{register.pwd.invalid}") 
    @Size(min = 6, max = 8, message = "{register.pwd.invalid}") 
    @Pattern(regexp="^(?=.*\d)(?=.*[A-Z]).{6,8}$",message="{register.pwd.week}") 
     public String getPwd() 
    { 
     return pwd; 
    } 

그러나 내가 때라도 오류

Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\) 
를 얻고 이것을 사용하고

시퀀스를 벗어날 수없는 것 같습니다. 어떤 식 으로든 자바 방법이이 문제를 처리하거나 내가 처리하기 위해 정규 표현식에 뭔가를해야하는 것입니다이 당신은 문자 그대로 당신의 문자열에서 백 슬래시를 탈출하는 데 필요한 모든

+0

가장'정규 표현식을 사용하는 것입니다 = "^ (= * \\ d) (? =. * [AZ]). {6,8} $ "'범인은 \ d 였으므로'\' –

답변

2

:

regexp="^(?=.*\\d)(?=.*[A-Z]).{6,8}$" 

실제 문자열 값은 그 시점에서 하나의 백 슬래시 만 가지므로 정규식 파서는이를 "\ d"로 간주합니다. 이건 정말 최대 절전 모드와는 아무 상관이 없음을

주 등 당신은 그냥 일반 문자열과 같은 일을 볼 수 있었다?.

// This will give the same problem 
String x = "^(?=.*\d)(?=.*[A-Z]).{6,8}$"; 

// Demo of fix 
String working = "^(?=.*\\d)(?=.*[A-Z]).{6,8}$"; 
System.out.println(working);