오라클 문자열 함수 중 일부 함수에서는 정규표현식을 지원한다
정규표현식이란?
문자열 데이터의 간단한 패턴 및 복잡한 패턴을 검색할 수 있는 정규식은 기존의 LIKE 연산의 한계를 뛰어넘는 막강한 검색 도구
다양한 Meta Character 를 이용하여 복잡한 프로그래밍을 간단하게 해결할 수 있다
메타 문자 Meta Characters
Meta Character | 설명 | 예시 |
* | 앞의 문자를 0개 이상 찾는다 | zo* -> z, zo, zoo, zoooooo |
+ | 앞의 문자를 1개 이상 찾는다 | zo+ -> zo, zoo, zooo |
? | 앞의 문자를 0개나 1개 찾는다 | zo? -> z, zo |
^ | 검색되는 문자열의 시작 부분에서 위치를 찾는다 중괄호 안에 있는 ^는 부정을 뜻한다 |
^We -> We************ [^abc] -> a, b, c 를 제외한 것들 |
$ | 검색되는 문자열의 끝부분에서 찾는다 (^와 반대) |
$e -> 문장 끝에 e가 있으면 true |
. | 모든 단일 문자를 검색 | a.c -> abc, a1c, a-c, a?c |
[xy] | [ ] 안의 문자 중 하나를 의미한다 '-' 를 사용하면 from ~ to 를 의미한다 |
[bts] -> b 또는 t 또는 s [0-9] -> 숫자 하나 [a-z] -> a부터 z까지 모든 영문 소문자 [가-힣] -> 한글 하나 [a-zA-Z0-9] -> 알파벳 대/소, 숫자 중 하나 |
x{m, n} | 등장횟수를 지정하는 것으로 { } 앞의 내용이 최소 m번 이상 n번 이하 등장한다 m, n을 생략하면 다양한 표현이 가능하다 {m} : m번 반복됨 {m, n} : m번 이상, n번 이하 반복됨 {m, } : m번 이상 반복 |
a{2} -> aa a{2, 3} -> aa, aaa a{a, } -> aa, aaa, aaaa, aaaaa... |
| | 둘 이상의 항목에서 선택한다 | (z|f)ood -> zood, food |
정규 표현식 Regular Expression
Function | 설명 |
REGEXP_LIKE(문자열, 패턴, ...) | Like 연산과 유사하여 정규식 패턴을 검색 |
REGEXP_REPLACE(문자열, 패턴, ...) | 정규식 패턴을 검색하여 대체 문자열로 변경 |
REGEXP_INSTR(문자열, 패턴, ...) | 정규식 패턴을 검색하여 위치 반환 |
REGEXP_SUBSTR(문자열, 패턴, ...) | 정규식 패턴을 검색하여 부분 문자 추출 |
REGEXP_COUNT(문자열, 패턴, ...) | 정규식 패턴을 검색하여 발견된 횟수 반환 |
select
REGEXP_SUBSTR('82CADS1FASDFDFDFDCD0FDFD0','S?F',1,1) A
,REGEXP_INSTR('82CADS1FASDFDFDFDCD0FDFD0','S?F',1,1) B
,REGEXP_SUBSTR('82CADSFASDFDFDFDCD0FDFD0','S?F',1,1) C
FROM DUAL;
참고블로그
https://goodteacher.tistory.com/227?category=822465
(개인적으로 이분 블로그가 이해하는데 도움이 많이 됐음)
반응형
'Oracle SQL' 카테고리의 다른 글
[Oracle/SQL] SubQuery / Inline View (0) | 2021.07.30 |
---|---|
[Oracle/SQL] From dual (0) | 2021.07.30 |
댓글