[오라클] 정규표현식 활용 예제 (REGEXP_REPLACE)
01. 숫자에 '-' 넣기
----------------------
SELECT REGEXP_REPLACE(REG_NO,'([[:alnum:]]{3})([[:alnum:]]{6})([[:alnum:]]{3})'
,'\1-\2-\3')
FROM
(
SELECT '123123456123' REG_NO
FROM DUAL
)
;
==> 123-123456-123
02. 숫자에 ',' 넣기
----------------------
SELECT NO
,REGEXP_REPLACE(REVERSE(REGEXP_REPLACE(REVERSE(TO_CHAR(no))
,'([0-9]{3})'
,'\1,')
)
,'^,'
,'') AS COMMA_NO
FROM
(
SELECT 123456789 AS no
FROM dual
) V1
03. 문자열 특정부분을 마스킹처리
----------------------
SELECT REGEXP_REPLACE('123456789', '([[:print]]{3}', '***', 3, 1) // 3: 시작위치, 1은 발생횟수
FROM DUAL
;
==> 12***6789
[:print:] 출력 가능한 문자
[:cntrl:] (출력되지 않는) 컨트롤 문자
[:punct:] 구두점 기호
[:space:] 출력되지 않는 공백 문자(carriage return, newline, vertical tab, form feed) 등
[:alnum:] 알파벳/숫자
[:digit:] 숫자
[:upper:] 대문자 알파벳 문자
[:lower:] 소문자 알파벳 문자
[:alpha:] 알파벳 문자
--- FROM dev4u ---