SQL/SQL공부
[SQL] Oracle 정규식(Regular Expression)
웅겹사r☆
2021. 6. 6. 22:45
Oracle 정규식(Regular Expression) 을 정리해보자
실무에서도 필요한 정규식을 그루핑해서 오라클함수로 만들어 쓰면 편하다
1. REGEXP_SUBSTR
REGEXP_SUBSTR( string, pattern [, start_position [, nth_appearance [, match_parameter ] ] ] )
REGEXP_SUBSTR( 해당 문자열, 정규식패턴 [, 시작위치 [, 일치횟수 [, 매칭 파라미터 ] ] ] )
EMAIL의 @ 앞의 부분만 출력하기
WITH SUBSTR_TEST AS (
SELECT '삼겹살@naver.com' AS EMAIL FROM dual
UNION
SELECT '상추와쌈장@yahoo.com' AS EMAIL FROM dual
UNION
SELECT '와사비와기름장@daum.net' AS EMAIL FROM dual
)
SELECT
REGEXP_SUBSTR(EMAIL, '[^@]+') AS FINAL_EMAIL
FROM SUBSTR_TEST;
2. REGEXP_REPLACE
REGEXP_REPLACE( string, pattern [, replacement_string [, start_position [, nth_appearance [, matching parameter ] ] ] ] )
REGEXP_REPLACE( 해당 문자열, 정규식 패턴, [, 대체문자열 [, 시작위치 [, 일치횟수 [, 매칭 매개변수 ] ] ] ] )
2칸 이상 공백이 생긴 내용을 1개의 공백으로 REPLACE하기
WITH REPLACE_TEST AS (
SELECT '삼겹살 항정상 가브리살' AS 결과 FROM dual
UNION ALL
SELECT '쌈장과 상추는 필수' AS 결과 FROM dual
)
SELECT
REGEXP_REPLACE(결과, '( ){2,}', ' ') AS STR
FROM REPLACE_TEST;