728x90
반응형
오라클 정규식
- 오라클 SQL을 작성하다 보면, 은근히 정규식을 많이 사용합니다.
- 알고 쓰면 정말 편리한 정규식에 대해 정리해보았습니다.
정규식 패턴
- 아래 표는 오라클에서 사용하는 대표적인 정규식 패턴들입니다.
정규식패턴 | 설명 |
^ | 문자열이 시작되는 위치 |
$ | 문자열이 끝나는 위치 |
. | 임의의 한 문자 |
[] | 문자 클래스 |
[^] | 부정 문자 클래스 |
* | 0개 이상의 문자 |
+ | 1개 이상의 문자 |
? | 0개 또는 1개의 문자 |
| | or 연산자 |
{m,n} | m개 이상 n개 이하의 문자 |
\ | 이스케이프 문자 |
() | 괄호 안의 패턴을 그룹으로 묶음 |
\d | 숫자를 의미 |
\D | 숫자가 아닌 문자를 의미 |
\s | 공백 문자를 의미 |
\S | 공백이 아닌 문자를 의미 |
\w | 단어 문자를 의미 (알파벳, 숫자, 언더바) |
\W | 단어 문자가 아닌 문자를 의미 |
[:alnum:] | 알파벳과 숫자를 의미 |
[:alpha:] | 알파벳을 의미 |
정규식 함수
- 아래 표는 오라클에서 정규식을 사용할 수 있는 함수들 입니다.
함수 | 설명 |
REGEXP_LIKE | 문자열이 정규식 패턴과 일치하는지 확인하고, 일치하면 TRUE를 반환합니다. |
REGEXP_INSTR | 문자열에서 정규식 패턴과 일치하는 위치를 찾아서 해당 위치를 반환합니다. |
REGEXP_SUBSTR | 문자열에서 정규식 패턴과 일치하는 부분 문자열을 추출합니다. |
REGEXP_REPLACE | 문자열에서 정규식 패턴과 일치하는 부분을 다른 문자열로 치환합니다. |
REGEXP_LIKE
REGEXP_LIKE(source_string, search_pattern [, match_parameter])
- source_string: 검색할 문자열
- search_pattern: 검색에 사용할 정규식 패턴 (이 패턴은 검색 기준을 정의하는 정규식 메타문자를 포함할 수 있습니다.)
- match_parameter: 검색 동작을 수정하는 데 사용할 수 있는 선택적 매개변수
- i: 대소문자를 구분하지 않고 검색
- c: 검색은 대소문자를 구분
- m: ^ 또는 $ 활성화, 멀티라인 모드
REGEXP_LIKE 예시
- description 열에 "Oracle"이라는 단어가 포함된 모든 행 찾습니다.
SELECT * FROM products
WHERE REGEXP_LIKE(description, 'Oracle');
REGEXP_INSTR
REGEXP_INSTR(source_string, pattern [, position [, occurrence [, match_param]]])
- source_string: 정규표현식 검색 대상 문자열입니다.
- pattern: 검색에 사용할 정규표현식 패턴입니다.
- position (선택적): 검색을 시작할 문자열 내 위치입니다. 기본값은 1입니다.
- occurrence (선택적): 반환할 일치하는 패턴의 발생 횟수입니다. 기본값은 1입니다.
- match_param (선택적): 추가 매칭 매개변수입니다. 기본값은 'c'입니다.
REGEXP_INSTR 예시
- 아래 쿼리는 "The quick brown fox" 문자열에서 "brown" 패턴과 일치하는 첫 번째 발생 위치를 찾습니다.
SELECT REGEXP_INSTR('The quick brown fox', 'brown') AS position
FROM dual;
--결과
11
REGEXP_SUBSTR
REGEXP_SUBSTR(source_string, pattern [, position [, occurrence [, match_param]]])
- source_string: 정규표현식 검색 대상 문자열입니다.
- pattern: 검색에 사용할 정규표현식 패턴입니다.
- position (선택적): 검색을 시작할 문자열 내 위치입니다. 기본값은 1입니다.
- occurrence (선택적): 반환할 일치하는 패턴의 발생 횟수입니다. 기본값은 1입니다.
- match_param (선택적): 추가 매칭 매개변수입니다. 기본값은 'c'입니다.
REGEXP_SUBSTR 예시
- 아래 쿼리는 "The quick brown fox" 문자열에서 "brown" 패턴과 일치하는 첫 번째 발생을 찾고, 해당 부분을 반환합니다.
SELECT REGEXP_SUBSTR('The quick brown fox', 'brown') AS result
FROM dual;
--결과
brown
REGEXP_REPLACE
REGEXP_REPLACE(source_string, pattern, replace_string [, position [, occurrence [, match_param]]])
- source_string: 정규표현식 검색 대상 문자열입니다.
- pattern: 검색에 사용할 정규표현식 패턴입니다.
- replace_string: 검색된 패턴을 대체할 문자열입니다.
- position (선택적): 검색을 시작할 문자열 내 위치입니다. 기본값은 1입니다.
- occurrence (선택적): 대체할 일치하는 패턴의 발생 횟수입니다. 기본값은 모든 발생입니다.
- match_param (선택적): 추가 매칭 매개변수입니다. 기본값은 'c'입니다.
REGEXP_REPLACE 예시
- 아래 쿼리는 "The quick brown fox" 문자열에서 "brown" 패턴과 일치하는 모든 발생을 찾아 "red"로 대체합니다.
SELECT REGEXP_REPLACE('The quick brown fox', 'brown', 'red') AS result
FROM dual;
--결과
The quick red fox
728x90
반응형