오라클에서 제공하는 정규표현식 지원 함수 regexp_like 를 이용하면 기존 like 구문에서 할 수 없었거나 아주 어렵게 구현했던 부분들을 아주 쉽게 구현할 수 있습니다.
regexp_like 기본 구문(Syntax) 는 다음과 같습니다.
예제를 통해서 사용법을 확인해보면,
♣ 문자열내에 특정문자(A, M, S) 문자가 들어가 있는 이름 찾기
'|' 기호는 or 의 의미를 가지고 있습니다. 근데, and 의 의미를 가진 '&' 는 없습니다. ㅎㅎ
& 는 정규표현식에 원래 없습니다.
♣ 특정문자(N)로 끝나는 이름 찾기
♣ 특정문자(S)로 시작하는 이름 찾기
$ 는 문자 뒤에 붙이고, ^ 는 문자 앞에 붙이는 차이가 있습니다.
♣ 특정문자(A, M, S) 문자가 들어가 있는 이름 찾기 (대소문자 구분)
패턴 문자열 뒤에 'c' 가 대소문자를 구분(Case Sensitive) 하라는 의미입니다.
대소문자 무시는 'i' (Ignore) 를 사용합니다.
♣ 첫문자가 M~Z 까지의 문자로 시작해서, 한문자 건너뛰고, 다음문자가 I 인 이름 찾기
점('.')은 임의의 아무 문자 1개를 가리킵니다.
♣ L 문자가 2번 반복되는 이름 찾기
중괄호 {n} 은 n 번 반복한다는 의미입니다.
♣ 모음(aeiou)가 2번 반복되는 단어 찾기, 대소문자무시(i)
대괄호[] 안에 문자를 넣으면, '|' (or) 를 여러개 쓴것과 같은 효과를 가집니다.
즉, [aeiou] = a|e|i|o|u 와 같습니다.
뒤에 \1 은 앞에서 나온 패턴을 한번더 반복한다는 의미 입니다.
3번째 인자인 i 는 대소문자 무시의 의미입니다.
♣ 패턴이 계속 반복되는 경우 \1를 여러번 사용 (\1 은 앞의 패턴을 반복)
\1 을 4번 사용하여 앞의 패턴([aeiou])을 4번더 반복 했습니다.
▶ 참고 : 오라클 정규표현식(Regular Expression) 소개 메인 페이지
'IT관련' 카테고리의 다른 글
오라클 정규표현식 함수 regexp_count 함수 샘플예제 (문자열내에 반복 패턴 카운트) (0) | 2020.12.09 |
---|---|
오라클 like 구문 업그레이드 regexp_like 샘플예제 (전화번호 포맷이 일치하지 않는 데이터 찾아내기 SQL문) (0) | 2020.12.09 |
오라클 정규식, 정규표현식(Regular Expression) 이란? 그리고 사용방법. (0) | 2020.12.09 |
오라클 PL/SQL 함수(Function) 병렬처리 옵션 (parallel_enable) (0) | 2020.12.09 |
테이블, 인덱스, 뷰, 시퀀스 rename to (이름 변경) SQL 구문 (ORA-14047, ORA-01765) (2) | 2020.12.07 |