프로그래밍/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"} 이렇게 그룹으로 나뉘게 됩니다
여기까지 정규표현식의 ?: 의 역할에 대해서 알아봤습니다
반응형
그리드형