반응형
정규 표현식과 Pattern 클래스
회원가입, 로그인 API를 만들다가 DTO Class를 작성하기 위해서 글을 써본다. (공부 하려고 ~_~)
javax.validation 어노테이션 @Pattern(regexp = "") 작성해보자
정규 표현식(Regular Expression)
- 문자열이 정해져 있는 형식으로 구성되어 있는지 검증할 떄 사용한다.
- 이메일, 전화번호, 비밀번호, 닉네임등
- 문자 또는 숫자 기호와 반복 기호가 결합된 문자열이다.
- java.util.regex 패키지에 있는 클래스를 사용하면 java 프로그래밍에서 정규표현식을 작성할 수 있다.
- Pattern 클래스와 Matcher 클래스 주로 사용
정규표현식 문법 (참조 링크)
정규 표현식 작성예제
전화번호
(02|010)-\d{3,4}-\d{4} -> \d == [0-9]와 동일하다.
02,010중 올 수 있고 - 0~9 중에서 올 수 있고 3글자 이상 4글자 미만 - 0~9 중에서 올 수 있고 4글자만 가능
이메일
\w+@\w+.\w+(.\w+)? -> \w == [a-zA-Z_0-9]와 동일하다.
ex) uhanuu@velog.io 일경우
\w (한 개의 알파벳 또는 한 개의 숫자) + (한개 이상) @ 똑같고 . (.이 와야 된다.) 똑같고
.com, .io 도 있겠지만 co.kr이라고 생각해보자
마지막(.\w+)? 이 부분은 .이 와야되고 한 개이상의 의 알파벳 또는 숫자 그다음 (? 없음 또는 한개)
pattern 클래스
- 정규 표현식으로 문자열을 검증하는 역활
- java.util.regex.pattern 클래스는 matches() 메소드를 지원한다.
boolean result = pattern.matches("정규식","입력된 문자열");
입력된 문자열이 정규식에 맞게 작성이 되었다면 true 틀리면 false
pattern 클래스는 다양한 메소드를 지원한다.(참조 링크)
Matcher 클래스에는 다양한 메소드가 정의 되어있다.(참조 링크)
자주사용하는 정규식(참조 링크)
반응형