SQLDSQL 활용정규표현식난이도 2MCQ

SQLD 정규표현식 기출문제 #580

문제

SQL
SELECT REGEXP_REPLACE('ABC123DEF456GHI', '([A-Z]+)([0-9]+)', '\2-\1') FROM DUAL; 실행 결과는?

① ABC-123DEF-456GHI ② 123-ABCDEF456GHI ③ 123-ABC456-DEFGHI ④ ABC123-DEF456-GHI

정답

3

해설

패턴 ([A-Z]+)([0-9]+)는 "대문자 그룹(\1) + 숫자 그룹(\2)"을 의미하며, 치환식 \2-\1은 두 그룹의 순서를 바꾸고 사이에 하이픈을 넣습니다. Oracle의 REGEXP_REPLACE는 기본적으로 매칭되는 모든 구간을 치환합니다. 문자열 'ABC123DEF456GHI'를 왼쪽부터 스캔하면 ABC123과 DEF456 두 구간이 패턴에 매칭되며, 각각 123-ABC, 456-DEF로 치환됩니다. 마지막 GHI는 뒤에 숫자가 없어 패턴을 만족하지 못하므로 그대로 남습니다. 결과를 이어 붙이면 123-ABC + 456-DEF + GHI = 123-ABC456-DEFGHI 이므로 정답은 ③ 입니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 정규표현식 SQL 활용 기출 #580 | sqldpass