java

[java] 자바 정규식 표현방법

JH..Y 2021. 9. 9. 14:38
728x90

 

[자주 보는 정규 표현식]

정규 표현식 설명
^[0-9]*$ 숫자
^[a-zA-Z]*$ 영문자
^[가-힣]*$ 한글
\\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail
^[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-z]+$ E-Mail
^\d{2,3}-\d{3,4}-\d{4}$ 전화번호
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ 휴대전화번호
\d{6} \- [1-4]\d{6} 주민등록번호
^\d{3}-\d{2}$ 우편번호

 

매칭될 문자를 지정하거나, 제외
[abc] a, b, c중 하나이면 일치 합니다.
[^abc] a, b, c를 제외한 다른 글자 이면 일치합니다.
[a-zA-Z] a 부터 z까지의 소문자 알파벳 이거나 A 부터 Z까지의 대문자 알파벳 중의 하나라면 일치합니다.(범위)
[a-d[m-p]] a 부터 d까지, 또는 m 부터 p까지 중에 하나와 일치합니다: [a-dm-p] (합집합)
[a-z&&[def]] d, e, f 중의 하나와 일치합니다. (교집합)
[a-z&&[^bc]] b와 c를 제외한 a 부터 z까지 중의 하나와 일치합니다: [ad-z] (차집합)
[a-z&&[^m-p]] m부터 p 까지를 제외한, a 부터 z까지 중의 하나와 일치합니다: [a-lq-z] (차집합)

 

미리 정의된 문자를 지정
. 임의의 문자 (라인 종결자와 일치할 수도 하지 않을 수도 있음)
\d 숫자 문자: [0-9]
\D 숫자 문자가 아닌것: [^0-9]
\s 화이트 스페이스 문자: [ \t\n\x0B\f\r]
\S 화이트 스페이스 문자가 아닌것: [^\s]
\w 알파벳 단어 문자(word 문자): [a-zA-Z_0-9]
\W 알파벳 단어 문자가 아닌것: [^\w]

 

 

수량 매칭
X? X?? X?+ X가 없거나 한번 나옴
X* X*? X*+ X가 없거나 한번 이상 나옴
X+ X+? X++ X가 한번 또는 여러번 나옴
X{n} X{n}? X{n}+ X가 정확히 n번 나옴
X{n,} X{n,}? X{n,}+ X가 n번 이상 나옴
X{n,m} X{n,m}? X{n,m}+ X가 n이상 m이하로 나옴

 

[정규식 사용 방법]

 

정규 표현식을 작성하는 방법은 자바 API java.util.regex 패키지를 사용해야한다.

 

[예제]

public class 자바정규식 {

	public static void main(String[] args) {
		
		// () 소괄호 안의 모든 문자열을 포함 (그룹화) 하는 문자열
		// ex. (xy) xy가 그대로 포함된 문자열
		// ^: 시작
		// .: 줄바꿈을 제외한 임의의 한 문자를 의미. 줄바꿈을 위한 m옵션은 허용
		// +: 앞의 표현식 1회 이상 일치
		// &: 문자열의 종료를 의미
                String regx = "^(확인 ).+$";

                String str1 = "확인 ";
                String str2 = "지금 확인 ";
                String str3 = "확인 합니다.";

                System.out.println(str1.matches(regx));	// false
                System.out.println(str2.matches(regx));	// false
                System.out.println(str3.matches(regx));	// true
	}
}

 

 

 

 

728x90

'java' 카테고리의 다른 글

[java] 클래스명, 필드명 가져오기  (0) 2021.10.25
[java] Spring Tool Suite(STS) 자주 사용하는 단축키  (1) 2021.10.15
[java] 정규식을 통한 공백 제거  (0) 2021.09.09
[java] Stream, Lambda  (0) 2021.06.22
[java] 옵셔널  (0) 2021.06.22