REGEXP_SUBSTR 함수는 SUBSTR의 확장판으로 특정 패턴에서 주어진 문자를 추출해 내는 함수입니다. Show SELECT REGEXP_SUBSTR('ABC* *DEF $GHI%KJL', '[^ ]+[DEF]') FROM DUAL; 예제를 통해 알아보는게 제일 빠르니 예제를 알아봅시다. 1. 교수테이블에서 홈페이지 주소가 있는 교수들만 조사해서 아래의 화면처럼 나오게 출력하세요. 더보기 SELECT NAME, HPAGE, LTRIM(REGEXP_SUBSTR(HPAGE, '/([[:alnum:]]+\.?){3,4}?'), '/') "URL" hpage 컬럼을 조회하여 'http://' 부분을 제거하고 . 으로 구분되는 필드를 최소 3개에서 4개까지 출력하라는 의미입니다.
더보기 SELECT NAME, EMAIL, LTRIM(REGEXP_SUBSTR(EMAIL, '@([[:alnum:]]+\.?){3,4}?'), '@') "DOMAIN"
더보기 SELECT REGEXP_SUBSTR('sys/oracle@racdb:1521:racdb', '[^:]+', 1, 3) RESULT 3번째는 racdb 2번째는 1521 1번째는 sys/oracle@racdb 입니다. /를 기준으로 하면 아래와 같습니다. o REGEXP_SUBSTR| 문법regexp_substr::= | 목적문자열에서 지정한 패턴 조건(정규표현식, 정규식)을 만족하는 부분의 문자열을 반환한다. REGEXP_SUBSTR함수는 정규 표현 패턴에 대하여 문자열을 검색할 수 있도록 REPLACE함수의 기능을 확장한 것이다. REGEXP_INSTR과 유사하나, substring의 위치를 반환하는 것이 아니라, substring 자체를 반환한다. 이 함수는 만약 일치 문자열의 내용은 필요하고, 소스 문자열 내에서 위치는 필요 없는 경우에 유용하다. 함수는 source_string으로써 같은 문자 세트 안에서 VARCHAR2 또는 CLOB 데이터와 같은 문자열을 반환한다. 이 함수는 POSIX 정규 표현 규격과 유니코드 정규 표현 가이드라인을 따른다.
| 참고
| 예제다음 예제는 string를 조사하여, 콤마에 의해 단락 지어진 처음 substring을 검색한다. 오라클 데이터 베이스는 콤마에 의해 따르는 콤마 문자가 아닌 1개 이상의 문자에 따르는 콤마를 검색한다. 오라클은 앞뒤 콤마를 포함한 substring을 반환한다.
다음 예제는 string을 조사하여, 하나 이상의 영숫자의 substring과 옵션으로 period(.)를 따르는 http://를 검색한다. 오라클은 http:// 와 slash(/) 또는 문자열의 끝 사이에 이 substring의 최소 3, 최대 4 발생을 검색한다.
REGEXP_SUBSTR 함수는 SUBSTR 함수와 마찬가지로 문자열의 일부를 추출합니다. 표 8은 새로운 함수의 사용법을 설명하고 있습니다. 아래 예제에서는 [^,]*, 패턴에 매치되는 문자열이 반환됩니다. 정규 표현식은 공백에 이어 사용된 쉼표를 검색하고, 쉼표가 아닌 문자가 0 회 또는 그 이상 반복되는 패턴을 검색([^,]*) 한 후 마지막으로 또 다른 쉼표를 검색합니다. 이 패턴은 쉼표로 구분된 문자열(comma-separated values)과 유사한 배열을 갖습니다.
-------------------------------------------- |