문제
다음 SQL의 실행 결과로 가장 적절한 것은?
SQLSELECT REGEXP_INSTR('12345678', '(123)(4(56)(78))', 1, 1, 0, 'i', 2) FROM DUAL;
① 1 ② 2 ③ 4 ④ 6
정답
3번
해설
정답: 3. subexpr 인수 2는 두 번째 괄호 그룹인 4(56)(78)의 시작 위치를 반환하므로 결과는 4이다.
오답 풀이
- 1번: 전체 패턴 또는 첫 번째 그룹의 시작 위치와 혼동한 값이다.
- 2번: 두 번째 문자 위치가 아니다.
- 3번: 두 번째 서브 표현식의 시작 위치이다.
- 4번: 세 번째 그룹 56의 시작 위치와 혼동한 값이다.
보충 개념 Oracle REGEXP_INSTR의 subexpr 인수는 정규식 안의 괄호로 묶인 하위 표현식 중 몇 번째 표현식의 위치를 반환할지 지정한다.