홍카나의 공부방

[ORACLE] 정규표현식(REG_EXP) 예시 본문

Data Engineering/Database

[ORACLE] 정규표현식(REG_EXP) 예시

홍문관카페나무 2024. 1. 9. 21:58

 

오라클에서는 REGEXP_LIKE,INSTR,SUBSTR,REPLACE,COUNT 등의 정규표현식 함수를 지원한다.

 

 

1. REGEXP_LIKE(source, pattern, match_parameter)

LIKE 함수는 source가 정규표현식 pattern에 매칭되는지 확인한다. match_parameter는 옵션이다.

 

SELECT PRODUCT_NAME
FROM PRODUCT_TABLE
WHERE REGEXP_LIKE(PRODUCT_NAME, '^A');

 

위 쿼리는 PRODUCT_NAME이 'A'로 시작하는 모든 제품을 SELECT한다.

 

 

2. REGEXP_INSTR(source, pattern, position, occurrence, return_option, match_parameter)

INSTR 함수는 문자열 source에서 정규 표현식 pattern이 나타나는 위치를 반환한다.

position은 검색을 시작할 위치를 나타낸다.

ccurrence는 일치하는 문자열이 복수로 존재하는 경우, 여러 패턴 중에서 몇 번째 패턴을 검색해야 하는지를 나타내는 양의 정수다. 기본 값은 1이다.

return_option을 0으로 지정하면 Oracle이 검색한 패턴이 발견된 문자열의 첫 번째 문자 위치를 반환한다. 1은 다음 문자의 위치를 반환한다.

match_parameter가 'i'면 대소문자를 구분하지 않고, 'c'면 대소문자를 구분하여 검색작업을 수행한다.

 

SELECT REGEXP_INSTR('1234567890', '[0-9]', 1, 4)
FROM dual;

-- 결과 값 4 반환

 

위 쿼리는 '1234567890' 문자열에서 0에서 9 사이의 숫자 패턴을 첫번째 위치부터 탐색하고, 일치하는 패턴 중에서 4번째 위치인 숫자 4를 반환한다.

 

3. REGEXP_SUBSTR(source, pattern, position, occurrence, match_parameter)

SUBSTR 함수는 source에서 pattern에 매칭되는 부분 문자열을 반환한다.

나머지 파라미터는 위와 의미가 같다.

 

SELECT REGEXP_SUBSTR('123abcd456def', '[a-z]+')
FROM dual;

 

위 쿼리는 123~ 문자열에서 첫 번째 문자열인 abcd를 반환한다.

 

 

4. REGEXP_COUNT(source, pattern, position, match_parameter)

COUNT 함수는 source에서 pattern을 발견하고, 매칭되는 부분의 개수를 반환한다.

SELECT REGEXP_COUNT('abcd123456efg', '[0-9]')
FROM dual;

 

위 쿼리는 abcd~ 문자열에서 숫자의 개수인 6을 반환한다.

반응형