REGEXP_REPLACE ^0-9 뜻이 무엇일까요? (오라클 정규식)

오라클 정규식에서 캐럿(^)은 표현식의 '시작'을 뜻하거나, 'not(~이 아님)' 뜻한답니다. 특정 문자 앞에 캐럿을 사용하는 경우에는 문자가 시작한다는 것을 뜻하며, 브라켓([ 또는 ]) 내에서 사용할 때에는 ~이 아니다라는 것을 뜻합니다. 예제를 통해 간단히 알아보도록 하겠습니다.

WITH VW AS (SELECT '06-010-1234-5678( 본인)   ' AS C FROM DUAL)
SELECT C, '[^0-9-]' AS EXP, REGEXP_REPLACE (C, '[^0-9-]') AS RESULT FROM VW
UNION ALL
SELECT C, '[^0-9]', REGEXP_REPLACE (C, '[^0-9]') FROM VW
UNION ALL
SELECT C, '[0-9-]', REGEXP_REPLACE (C, '[0-9-]') FROM VW;

C                          EXP            RESULT
-------------------------- -------------- ----------------
06-010-1234-5678( 본인)    [^0-9-]        06-010-1234-5678
06-010-1234-5678( 본인)    [^0-9]         0601012345678
06-010-1234-5678( 본인)    [0-9-]         ( 본인)

위의 예제에서 '[^0-9-]' 표현식은 대괄호 안에 나열한 문자가 아닌 것을 뜻합니다. 숫자(0-9), 하이픈(-)이 아닌 소괄호와 문자를 null로 치환한 결과를 보여드리고 있습니다.

표현식 '[^0-9]' 은 숫자가 아닌 것을 뜻합니다. 하이픈(-)과 소괄호, 문자를 null로 치환한 결과를 보여드립니다.

캐럿이 없는 대괄호 내의 문자는 any의 뜻을 가지고 있습니다. 숫자(0-9)와 하이픈에 해당하는 글자를 표현식으로 캡처할 것입니다. 그리하여 숫자와 하이픈을 null로 치환한 결과를 보여드릴 것입니다.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗