정규식좀 간단하게 부탁드립니다.
컬럼값에서 특정문자에 대해 치환을 하려 합니다.
컬럼값의 LENGTH는 무조건 짝수인데
VAL에서 찾은 값의 POSITION은 홀수로 시작한 값만 치환하려 합니다.
아래 쿼리를 보면
'BB', 'CC' 값을 '00'으로 치환하는데 10번째 POSITION 의 BB는 짝수로 시작하기 때문에 치환을 하지 않았습니다.
아래 부분이 지저분한데 좀 깔끔하게 할 수 없을까요?
WITH TBL AS ( SELECT 'AABBCCDDZBBZ' VAL FROM DUAL ) SELECT VAL , REPLACE((REGEXP_REPLACE(REGEXP_REPLACE(VAL, '(.{2})', '\1^'), 'BB|CC', '00')), '^') AS T1 FROM TBL
-- 결과값
VAL T1
-----------------------------------------------
AABBCCDDZBBZ AA0000DDZBBZ