감자의 개발공부 일지

[Oracle] 오라클 REGEXP_SUBSTR 함수 사용법 및 예제 본문

DB

[Oracle] 오라클 REGEXP_SUBSTR 함수 사용법 및 예제

Elie_J 2024. 5. 30. 14:10
반응형

Oracle의 REGEXP_SUBSTR 함수란?

정규 표현식을 사용하여 문자열 내에서 특정 패턴을 검색하고, 해당 패턴에 일치하는 하위 문자열을 반환하는 함수

 

사용방법

REGEXP_SUBSTR(source_string, pattern, start_position, match_occurrence, match_parameter)

 

source_string  = 검색할 대상 문자열

pattern = 정규 표현식 패턴

start_position (옵션) = 검색을 시작할 위치. 기본값은 1

math_occurrence (옵션) = 일치 항목의 발생 횟수. 기본값은 1

math_parameter (옵션) = 정규 표현식의 일치 방식을 지정하는 매개변수

 

문자열에서 처음으로 등장하는 숫자를 찾는 예제

SELECT REGEXP_SUBSTR('Oracle SQL 2024 Tutorial', '[0-9]+') AS result FROM dual;

 

결과 값 : 2024

 

여러 번쨰 일치 항목 찾는 예제

SELECT REGEXP_SUBSTR('One Two Three Four', '\w+', 1, 2) AS result FROM dual;

 

결과 값 : Two

-> 단어를 나타내는 패턴(\w+)에 대해 두번쨰 일치 항목을 찾음

시작 위치 지정 예제

SELECT REGEXP_SUBSTR('Oracle Database 2024', '\w+', 3) AS result FROM dual;

 

결과 값 : acle

-> 세 번째 문자(a)에서 시작하여 첫번째 단어를 찾기

 

특정 단어 뒤의 문자열 추출 예제

SELECT REGEXP_SUBSTR('Find the word after the word example', 'word (\w+)', 1, 1, NULL, 1) AS result FROM dual;

 

결과 값 : after

-> word라는 단어 뒤에 오는 첫 번쨰 단어 찾기

 

구분자로 나누어진 값 추출

SELECT REGEXP_SUBSTR('apple,banana,cherry', '[^,]+', 1, 2) AS result FROM dual;

 

결과 값 : banana

-> 쉼표로 구분된 값 중 두번째 값을 추출

 

이메일 도메인 추출

SELECT REGEXP_SUBSTR('user@example.com', '@(.+)', 1, 1, NULL, 1) AS result FROM dual;

 

결과 값 : example.com

-> @ 뒤에 오는 도메인 부분 추출

 

다중 일치 항목 추출

WITH sample_data AS (
    SELECT 'One Two Three Four' AS text FROM dual
)
SELECT REGEXP_SUBSTR(text, '\w+', 1, LEVEL) AS word
FROM sample_data
CONNECT BY REGEXP_SUBSTR(text, '\w+', 1, LEVEL) IS NOT NULL;

 

결과 값 :

  • One
  • Two
  • Three
  • Four

-> CONNECT BY 절을 사용하여 문자열에서 모든 단어를 추출

 

 

반응형