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' 처럼 '.'이 한번더 사용하여도 검사의 통과되도록 할 수 있다.





+ Recent posts