SQLD(SQL 개발자) 기출 · 정규표현식
다음 SQL문의 실행 결과로 옳은 것은?
본문)
<SQL>
SELECT REGEXP_INSTR('12345678', '(123)(4(56)(78))', 1, 1, 0, 'i', 2) FROM DUAL;이 문제 풀어보기
정답 및 해설 보기
정답: 2번
REGEXP_INSTR(
문자열, -- '12345678'
정규표현식, -- '(123)(4(56)(78))'
시작위치, -- 1
발생순번, -- 1 (첫 번째 일치)
반환옵션, -- 0 (일치 시작 위치 반환)
'i', -- 대소문자 구분 없음
서브표현식 인덱스 -- **2번 그룹의 시작 위치 반환**
)
(123) → 그룹 1
(4(56)(78)) → 그룹 2
56 → 그룹 3
78 → 그룹 4
→ 즉, 2번째 그룹은 "45678" 전체 중 "4"부터 시작
→ '12345678'에서 두 번째 그룹(45678)은 4번 인덱스에서 시작
문자열, -- '12345678'
정규표현식, -- '(123)(4(56)(78))'
시작위치, -- 1
발생순번, -- 1 (첫 번째 일치)
반환옵션, -- 0 (일치 시작 위치 반환)
'i', -- 대소문자 구분 없음
서브표현식 인덱스 -- **2번 그룹의 시작 위치 반환**
)
(123) → 그룹 1
(4(56)(78)) → 그룹 2
56 → 그룹 3
78 → 그룹 4
→ 즉, 2번째 그룹은 "45678" 전체 중 "4"부터 시작
→ '12345678'에서 두 번째 그룹(45678)은 4번 인덱스에서 시작