Java Pattern 문자열 검증하기
결과
결과
코드
public static void main(String[] args) {
String sec1 = "(010|02)-\\d{3,4}-\\d{4}";
String phone = "010-1234-5678";
if(Pattern.matches(sec1, phone)) {
System.out.println("전화번호가 양식에 맞습니다.");
}
else {
System.out.println("전화번호가 양식에 맞지 않습니다.");
}
String sec2 = "\\w+@\\w+\\.\\w+";
String sec3 = "\\w+@\\w+\\.\\w+(\\.\\w+)?";
String email = "abcde@abcde.co.kr";
System.out.println("이메일이 양식에 " + (Pattern.matches(sec2, email) ? "맞습니다." : "맞지 않습니다.") );
System.out.println("이메일이 양식에 " + (Pattern.matches(sec3, email) ? "맞습니다." : "맞지 않습니다.") );
}
Pattern 클래스 : 문자열 검증
- 이메일이나 전화번호 등 특정 형식(양식)이 정해져있는 값을 입력 받았을 때 올바른 양식대로 값을 입력하였는지 확인하기 위하여 사용한다.
- java.util.regex.Pattern 을 import 한다.
- Pattern 클래스의 matches 메소드의 표현식과 검증할 문자열을 주어 검사한다.
- 정규 표현식 기호들
기호 |
의미 |
\d |
한 개의 숫자 |
\w |
한 개의 영어 또는 수잦 |
\s |
공백 |
[a-z] |
a~z 중 한개의 문자 ex) [0-9] : 0~9 중 한 개 |
? |
없거나 또는 한 개 |
* |
없거나 또는 한 개 이상 |
+ |
한개 이상 |
( ) | 수식처럼 묶기 |
| | 파이프 문자(OR) |
{ } | {n} : 정확히 n개만 있다. {n,} : 최소 n개는 있다. {n, m} : n개 이상 m개 이하이다. |
- 정규 표현식 기호를 사용하여 정규 표현식을 만들 때 이는 문자열이므로 문자열 안에서 \를 표현하기 위하여 '\\' 처럼 2번을 써주어야 한다.
'.'을 사용해 줄 때도 '\.' 처럼 작성해주어야 한다.
- 괄호로 묶은 다음 ? 를 준다면 괄호 내의 내용이 없거나 한개 라는 의미이다.
위 결과를 보면 검사할 이메일의 형식이 '.co.kr' 으로 2번의 '.'과 문자들이 사용된다.
따라서 ( )와 ?를 사용하여 맨 뒤에 '.kr' 처럼 '.'이 한번더 사용하여도 검사의 통과되도록 할 수 있다.
'JAVA > 심화' 카테고리의 다른 글
Java 시간 차 구하기 ChronoUnit (0) | 2020.03.28 |
---|---|
Java 날짜와 시간 얻기 LocalDate, LocalTime (0) | 2020.03.27 |
Java 배열 Arrays 클래스 (0) | 2020.03.26 |
Java DecimalFormat 천단위마다 쉼표 입력 (0) | 2020.03.26 |
Java Date, Calendar, SimpleDateFormat 시간 구하기 (0) | 2020.03.25 |