문제
다음 정규표현식 함수의 실행 결과로 추출되는 값은?
① 1 ② 2 ③ 3 ④ 4
정답
3번
해설
정답: 3. REGEXP_INSTR는 패턴이 처음 매칭되는 시작 위치를 1부터 반환한다. 문자열 '123123123'을 한 글자씩 보면 1(1) 2(2) 3(3) 1(4) 2(5) 3(6)… 이고, 부분문자열 '312'는 3번째 글자 '3'에서 시작해 '3'(3) '1'(4) '2'(5)로 처음 완성되므로 시작 위치는 3이다.
오답 풀이
- ①: 1번째부터 보면 '123'이라 '312'와 다르다.
- ②: 2번째부터 보면 '231'이라 매칭되지 않는다.
- ③: 정답.
- ④: 4번째('1')부터 시작하면 '123'이라 더 늦은 매칭이며, 첫 매칭은 3번째다.
보충 개념 REGEXP_INSTR(소스, 패턴)은 매칭이 없으면 0, 있으면 매칭이 시작되는 1-base 위치를 돌려준다. 위치 인자를 생략하면 1번째 문자부터 탐색하며 가장 이른 매칭 위치를 반환한다.