문자열의 규칙을 표현하는 검색 패턴
문자열 검색과 치환에 주로 사용
Posix 연산자
기본연산자
- . : 모든 문자와 일치
- | : or, 대체 문자를 구분
- 먼저 들어온 문자를 리턴
- ex. Regexp_substr('aa', 'a|aa') => 'a' 리턴
검색 패턴과 시작과 끝 지정
- \ : 백슬래시, 다음 문자를 일반 문자로 취급 (이스케이프문자)
- ^ : 캐럿, 문자열의 시작
- $ : 문자열의 끝
수량사
선행 표현식의 일치 횟수를 지정
- ? : 0회 또는 1회 일치
- * : 0회 또는 그 이상의 횟수로 일치
- + : 1회 또는 그 이상의 횟수로 일치
Greedy
패턴을 최대로 일치 시킴
- {m} : m회 일치
- {m,} : m회 최소 일치
- {,m} : m회 최대 일치
- {m,n} : 최소 m회, 최대 n회 일치
- () : 괄호 안 표현식을 하나의 단위로 취급
- \n : 역참조, n번때 서브 표현식과 일치, n은 1~9 사이 정수 ex. (ab|cd)x\1 인 경우, 'abxab', 'cdxcd' ... Ok
- [char...] : 문자 리스트 중 한문자와 일치
- [...-...] : 하이픈(-)은 문자 혹은 숫자의 범위 의미
- [^char...] : 문자 리스트에 포함되지 않은 한 문자와 일치 ex. [0-9] : 0~9까지의 숫자, [a-zA-Z] : 영대소문자
- [:digit:] : 숫자만
- [:lower:] : 소문자만
- [:upper:] : 대문자만
- [:alpha:] : 영대소문자
- [:xdigit:] : 16진수 = [0-9a-fA-F]
- [:punct:] : 구두점 기호
- [:blank:] : 공백 문자
- [:space:] : 공간 문자 -> 스페이스, 엔터, 탭
Perl 연산자
- \d : 숫자
- \D : 숫자가 아닌 모든 문자 = [^[:digit:]]
- \w : 숫자와 영문자
- \W : 숫자와 영문자가 아닌 모든 문자 (언더바 제외) = [^[:alnum:]_]
- \s : 공백 문자
- \S : 공백 문자가 아닌 모든 문자
수량사와 유사
비탐욕적으로 동작
- ?? : 0회 또는 1회 일치
- *? : 0회 또는 그 이상의 횟수로 일치
- +? : 1회 또는 그 이상의 횟수로 일치
Non greedy 방식
패턴을 최소로 일치시킴
- {m}? : m회 일치
- {m,}? : 최소 m회 일치
- {,m}? : 최대 m회 일치
- {m,n}? : 최소 m회 일치, 최대 n회 일치
관련 함수
Regexp_like (검색문자열지정, 검색패턴지정, 일치옵션지정)
일치하면 true, 아니면 false 리턴
Regexp_replace (검색문자열지정, 검색패턴, 변경문자열지정, 변경위치, 패턴일치횟수지정)
변경한 값을 반환
Regexp_substr (검색문자열, 검색패턴, 검색시작위치, 패턴일치횟수, 서브표현식지정)
일치한 패턴을 반환
Regexp_instr (검색문자열, 검색패턴, 검색시작위치, 패턴일치횟수, 반환옵션지정, 일치옵션지정, 서브표현식지정)
검색 문자열에서 일치한 패턴의 시작위치를 정수로 반환
Regexp_count (검색문자열, 검색패턴, 시작위치, 일치옵션)
검색 문자열에서 일치한 패턴의 횟수를 반환
'Web Study > DataBase' 카테고리의 다른 글
SQLD - Join 에 대해 (0) | 2023.09.10 |
---|---|
SQLD - Transaction (트랜잭션) (0) | 2023.09.07 |
SQLD - 정규화/반정규화 (0) | 2023.08.23 |
SQLD - 스키마, ERD (0) | 2023.08.21 |
SQLD - 데이터 모델링의 이해 (0) | 2023.08.20 |