REGEXP_SUBSTR / REGEXP_INSTR / REGEXP_REPLACE / REGEXP_LIKE

SOOYEON·2022년 7월 1일
0

SQL

목록 보기
17/54

REGEXP_SUBSTR

REGEXP_SUBSTR(컬럼명/문자,패턴 [,시작위치[,지정 발생순번],[옵션]])

  • 패턴 일치 조건 문자열 반환,
  • 옵션
    • i : 대소문자 무시,
    • c : 대소문자 구분
# EX) 
REGEXP_SUBSTR(url_str, '[^/]+'1,2) # 주소줄에서 /기호가 아닌 문자열 중 2 번째 문자열

REGEXP_INSTR

REGEXP_INSTR(컬럼명/문자,패턴 [,옵션...])

  • 패턴에 일치하는 부분의 최초의 위치 반환
# EX) 
REGEXP_INSTR(제목명, '[tT]it(lle|le)$')

REGEXP_REPLACE

REGEXP_INSTR(컬럼명/문자,패턴,대체문자열)

  • 패턴에 일치하는 부분을 지정문자로 대체

REGEXP_LIKE

REGEXP_LIKE(컬럼명/문자,패턴)

  • 패턴으로 조건 검색
# EX) 
WHERE REGEXP_LIKE(url_str, '^/abc|^def|^ghi')

# ==
WHERE SUBSTR(REGEXP_SUBSTR(url_str, '[^/]+',1,2),1,3) in ('abc','def')

# == 
WHERE url_str LIKE '%/abc%' OR url_str LIKE '%/def%' OR url_str LIKE '%/ghi%'

SUBSTR

SUBSTR(str, 시작점, 길이)


ex) 문장 내 email 추출

# ex)
str = 'sdfsdqer*&^abc@gmail.com-finance-wetieruio@#%#'
tol = regexp_substr(str, '\w+\@\w+(.\w+)+') = abc@gmail.com

/* 
(.\w+)+ 는 다양한 이메일 서버 도메인을 고려함, 
+는 ()내 패턴 반복 
ex) abc@abc.co.kr
*/

# ex)
regexp_substr(str,'\w+\@\w+\.com') = abc@gmail.com

/* .com으로 끝나는 이메일 만 수집 시
원하는 일정 문자를 지정할 수도 있다.
*/

0개의 댓글