정규 표현식(Regular Expression)
- 정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다.
- 입력받을 데이터에 조건을 거는 것
- @Pattern 에너테이션을 사용하여 입력받는 데이터를 검증할 수 있음
Bean Validation
| 에너테이션 | 내용 |
|---|
| @NotNull | null 불가 |
| @NotEmpty | null, “” 불가 |
| @NotBlank | null, “”. “ “ 불가 |
| @Size(min=2, max=10) | 문자길이를 2~10 지정 |
| @Max(10) | 최대값, size로 해도 문제 없음 |
| @Min(2) | 최소값, size로 해도 문제 없음 |
| @Positive | 양수 |
| @Negative | 음수 |
| @Email | E-mail 형식 |
| @Pattern | 정규 표현식 |
정규 표현식 적용
public class SignupRequestDto {
@Pattern(regexp = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$")
private String email;
}
정규 표현식 내용
- "^(.+)@(.+)$"
=> 가운데 @만 있으면 됨
- "^[A-Za-z0-9+_.-]@(.+)$"
=> @ 앞에 대소문자 A~Z, 숫자 0 ~ 9, _. 허용
- "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]@[a-zA-Z0-9.-]+$")
=> 위 내용에 + 입력한 각종 특수문자
정규식 기호
| 기호 | 설명 |
|---|
| ^ | 시작을 의미 |
| [^a] | a가 아닌 문자 하나 |
| . | 임의 문자 1개를 의미 |
| $ | 끝을 의미 |
| () | 그룹 |
| [] | 괄호안에 있는 문자 가능 |
| + | 앞의 표현식이 1개 이상 or 여러개 |
| - | 사이의 문자 혹은 숫자를 의미한다 |
=> 더 많은 기호가 있다 세부 내용은 참고 블로그에서!