loading

프로그래밍/JAVA

[JAVA] 정규표현식(Regular Expression)의 ?: 역할

침착곰 2021. 5. 28. 11:39
반응형

안녕하세요

최근 정규표현식에 대해서 알아보는 도중에 정규표현식의 메타문자 중에서 ?: 기능이 무엇인지 설명되어있는게 따로 없어서 한 번 찾아봤습니다

?: 역할에 대해서 포스팅해보겠습니다

 


 

?:은 정규표현식에서 (~~~~)의 경우 그룹으로 캡쳐가 됩니다

하지만 (?:~~~~)을 붙이는 경우 캡처를 하지 않고 넘어가게됩니다

예를 통해서 확인하는게 더 이해하기가 빠르실 겁니다

import java.util.regex.Pattern;

public class REExam4 {
	public static void main(String[] args) {
		String telephone = "010-1111-1111";
		
		// 패턴 검사
		boolean telephone_pt = Pattern.matches("^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$", telephone);
		
		// 출력
		System.out.println("전화번호 체크 : " + telephone_pt);
	}
}

위와 같이 전화번호에 ?:을 붙이게 되면 검사는 하지만 캡쳐는 하지 않게 됩니다

결과는 "010-1111-1111" 이렇게 나올 수 있게 되는 것입니다

?:를 쓰지 않았다면

{"0", "0", "-", "1111", "-1111"} 이렇게 그룹으로 나뉘게 됩니다

여기까지 정규표현식의 ?: 의 역할에 대해서 알아봤습니다

반응형
그리드형