티스토리 뷰

반응형

regexp_like 함수

【형식】
    regexp_like (search_string, pattern [,match_option])

【예제】
SQL> select * from test;
 
        ID NAME       EMAIL
---------- ---------- ------------------------------
         1 한라산     hanlasan@abc.co.kr
         2 백두산     backdusan@abc.co.kr
         3 금강산     gumgangsan@abc.co.kr
 
SQL> select * from test
  2  where regexp_like(name, '^[한백]'); ☜  name 필드에서 한 또는 백자로 시작하는 레코드를 찾는다.
 
        ID NAME       EMAIL
---------- ---------- ------------------------------
         1 한라산     hanlasan@abc.co.kr
         2 백두산     backdusan@abc.co.kr
 
SQL> select * from test
  2  where regexp_like(name,'강산$'); ☜  name 필드에서 강산자로 끝나는 레코드를 찾는다.
 
        ID NAME       EMAIL
---------- ---------- ------------------------------
         3 금강산     gumgangsan@abc.co.kr
 
SQL> where REGEXP_LIKE('ABCDEFGH','CD')  -- 조건에 포함되는 재료추출

regexp_substr 함수

 문자열에 존재하는 임의의 패턴을 추출하여 출력한다.

【형식】 
      REGEXP_SUBSTR (source_char, pattern 
                      [, position
                      [, occurrence
                      [, match_param
                      [subxpr]]]])

source_char 찾을 문자로 데이터타입은 :CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB임
pattern 512바이트까지의 정규표현식으로 데이터타입이 source_char과 다르면 pattern의 데이터타입을 source_char과 같게 변환
position 찾을 문자의 위치로 디폴트는 1이며, 이는 첫 글자부터 찾는 다는 의미
occurrence source_char에 pattern이 발생한 횟수로 디폴트는 1임
match_parameter 디폴트 매칭을 변경할 때 사용
subexpr 0∼9의 정수로 subexpression의 위치를 나타내며, 0은 pattern과 substring이 완전히 일치함을 의미

【예제】
SQL> select * from test;

        ID NAME                 EMAIL
---------- -------------------- ------------------------------
         1 Hello1234            hello@abc.c.kr
         2 you3456              you@abc.co.kr

SQL> select email, regexp_substr(email, '[^@]+') ID from test;

EMAIL                ID
-------------------- --------------
hello@abc.c.kr       hello
you@abc.co.kr        you


SQL> 
 문자열 중에서 @ 이전의 문자만 출력하는 예제이다.

【예제】
SQL> select REGEXP_SUBSTR('500  Oracle Parkway, Redwood Shores, CA',
  2                         ',[^,]+,') "REGEXP_SUBSTR"
  3  from dual;

REGEXP_SUBSTR
----------------------------------
, Redwood Shores,

SQL> select REGEXP_SUBSTR('http://www.oracle.com/products',
  2     'http://([[:alnum:]]+\.?){3,4}/?')
  3                       "REGEXP_SUBSTR"
  4  from dual;

REGEXP_SUBSTR
--------------------------------------------
http://www.oracle.com/

SQL> select REGEXP_SUBSTR('1234567890', '(123)(4(56)(78))',1,1,'i',1)
  2                       "REGEXP_SUBSTR"
  3  from dual;   ☜ 첫 번째 subexpression

REGEXP
------
123

SQL> select REGEXP_SUBSTR('1234567890', '(123)(4(56)(78))',1,1,'i',4)
  2                       "REGEXP_SUBSTR"
  3  from dual;  ☜ 4번째 subexpression

REGE
----
78

SQL>
참조 : http://bugcaps.springnote.com/pages/10827864.xhtml
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함