찌니의 프로그래밍 삼매경

[SQL] Oracle 정규식(Regular Expression) 본문

SQL/SQL공부

[SQL] Oracle 정규식(Regular Expression)

zzI니☆ 2021. 6. 6. 22:45
728x90

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;

 

728x90

'SQL > SQL공부' 카테고리의 다른 글

[SQL] Oracle TO_CHAR  (0) 2021.06.10
[SQL] Oracle WITH절(임시테이블)  (0) 2021.06.09
[SQL] Drop, Truncate, Delete 차이점  (0) 2021.06.08
[SQL] Oracle 날짜함수 (계속 추가중)  (0) 2021.06.07
[SQL] Oracle LISTAGG 함수  (2) 2021.05.31
Comments