본문 바로가기
Database/Oracle

[ORACLE] REGEXP_REPLACE() 정규표현식으로 문자열 패턴 치환하는 방법

by Papa Martino V 2025. 6. 4.
728x90

오라클 REGEXP_REPLACE() 정규표현식으로 문자열 패턴 치환하는 방법
[Oracle] REGEXP_REPLACE

 

 

 

REGEXP_REPLACE()는 Oracle SQL에서 정규표현식을 이용해 문자열을 치환할 수 있는 강력한 함수입니다. 이 글에서는 기본 문법부터 실무 활용 예제까지 체계적으로 설명하여, Oracle을 사용하는 개발자들이 실질적으로 업무에 적용할 수 있도록 안내합니다.

1. REGEXP_REPLACE 함수란?

Oracle의 REGEXP_REPLACE 함수는 문자열 내에서 정규표현식과 일치하는 부분을 다른 문자열로 대체하는 함수입니다.

REGEXP_REPLACE(source_string, pattern, replace_string [, position [, occurrence [, match_parameter]]])
  • source_string: 원본 문자열
  • pattern: 정규표현식 패턴
  • replace_string: 치환할 문자열
  • position: 검색 시작 위치 (기본값 1)
  • occurrence: 몇 번째 항목을 바꿀지 지정 (기본값 0 = 전체)
  • match_parameter: 'i'(대소문자 무시), 'c'(구분), 'n'(개행 포함) 등

2. 기본 예제

예제 1: 숫자 제거

SELECT REGEXP_REPLACE('abc123def456', '\d+', '') AS result FROM dual;

결과: 'abcdef'

예제 2: 공백을 쉼표로 대체

SELECT REGEXP_REPLACE('A B C', '\s+', ',') AS result FROM dual;

결과: 'A', 'B, 'C'

예제 3: 이메일 주소 마스킹

SELECT REGEXP_REPLACE('user@example.com', '(^.).*@', '\1***@') AS masked FROM dual;

결과: 'u***@example.com'

3. 실무 활용 예제

예제 4: 전화번호 포맷 변경

SELECT REGEXP_REPLACE('01012345678', '(\d{3})(\d{4})(\d{4})', '\1-\2-\3') AS phone FROM dual;

결과: '010-1234-5678'

예제 5: 다중 공백 제거

SELECT REGEXP_REPLACE('Oracle    SQL   Tutorial', '\s+', ' ') AS cleaned FROM dual;

결과: 'Oracle SQL Tutorial'

예제 6: HTML 태그 제거

SELECT REGEXP_REPLACE('<p>Hello</p>', '<.*?>', '') AS text FROM dual;

결과: 'Hello'

4. 고급 활용

예제 7: 정규표현식 그룹 활용

SELECT REGEXP_REPLACE('2025/06/01', '(\d{4})/(\d{2})/(\d{2})', '\1년 \2월 \3일') AS formatted FROM dual;

결과: '2025년 06월 01일'

예제 8: 특정 단어만 치환

SELECT REGEXP_REPLACE('dog cat dog', '\bdog\b', 'puppy') AS result FROM dual;

결과: 'puppy cat puppy'

5. REGEXP_REPLACE vs REPLACE

기능 REGEXP_REPLACE REPLACE
치환 방식 정규표현식 정확히 일치하는 문자열
복잡한 패턴 대응 가능 불가능
성능 비교적 느림 빠름

6. 성능 고려사항

정규표현식 기반 함수는 성능 비용이 높기 때문에, 반복 처리 시에는 주의가 필요합니다. 대용량 데이터에는 사전 필터링, 인덱스 활용, 또는 정규표현식 최소화 전략을 적용하는 것이 좋습니다.

7. 실무 팁

  • 다량의 텍스트 데이터를 정제할 때 유용
  • 이메일, 전화번호, HTML 등 구조화된 문자열 처리
  • 유효성 검사와 병행해 사용 시 더욱 효과적

8. 결론

Oracle의 REGEXP_REPLACE 함수는 텍스트 정제, 포맷 변경, 민감정보 처리 등 다양한 실무에서 유용하게 사용될 수 있는 도구입니다. 정규표현식을 익히고 이를 REGEXP_REPLACE와 조합하면 복잡한 문자열 처리 작업도 간결하고 효과적으로 해결할 수 있습니다.

9. 참고자료

  • Oracle 공식 문서: https://docs.oracle.com
  • Oracle SQL Language Reference 21c
  • 실전 SQL 정규표현식 가이드 - 김상형 저
728x90