Oracle RegularExpression
이 글에서는 Oracle에서 사용할 수 있는 정규표현식 함수와 메타문자를 정리한다.
🧪 REGEXP_LIKE
REGEXP_LIKE는 패턴과 일치하는지 확인할 때 사용한다.
SELECT *
FROM TB_BZ_RBT
WHERE REGEXP_LIKE(RBT_NM, '로뮴|SH', 'i');
🧪 REGEXP_REPLACE
REGEXP_REPLACE는 패턴을 찾아 다른 문자열로 치환할 때 사용한다.
SELECT REGEXP_REPLACE(RBT_NM, '로뮴|SH', '치환된 문자열', 1, 0, 'i')
FROM TB_BZ_RBT;
🧪 REGEXP_INSTR
REGEXP_INSTR는 패턴이 발견된 위치를 반환한다.
SELECT REGEXP_INSTR(RBT_NM, '로뮴|SH', 1, 1, 0, 'i')
FROM TB_BZ_RBT;
🧪 REGEXP_SUBSTR
REGEXP_SUBSTR는 패턴과 일치하는 문자열 일부를 추출한다.
SELECT REGEXP_SUBSTR(RBT_NM, '로뮴|SH', 1, 1, 'i')
FROM TB_BZ_RBT;
🧪 REGEXP_COUNT
REGEXP_COUNT는 패턴이 몇 번 발견되는지 세는 함수다.
SELECT REGEXP_COUNT(RBT_NM, '로뮴|SH', 1, 'i')
FROM TB_BZ_RBT;
🧱 정규표현식 메타문자
| 메타문자 | 설명 |
|---|---|
| . | 임의의 한 문자 |
| ? | 앞 문자가 0번 또는 1번 |
| + | 앞 문자가 1번 이상 |
| * | 앞 문자가 0번 이상 |
| {m} | 정확히 m번 반복 |
| {m,} | 최소 m번 반복 |
| {m,n} | m번 이상 n번 이하 반복 |
| […] | 문자 집합 |
| ^ | 문자열의 시작 |
| $ | 문자열의 끝 |
| \ | 이스케이프 문자 |
| \n | 줄바꿈 |
| \d | 숫자 |
| [:class:] | POSIX 문자 클래스 |
| [^:class:] | 해당 클래스가 아닌 문자 |
🧩 POSIX 문자 클래스 예시
[:alpha:]알파벳[:digit:]숫자[:lower:]소문자[:upper:]대문자[:alnum:]영숫자[:space:]공백[:punct:]문장부호[:cntrl:]제어문자[:print:]출력 가능한 문자
🧭 정리
REGEXP_LIKE는 조건 검사에 사용한다.REGEXP_REPLACE는 치환에 사용한다.REGEXP_INSTR는 위치를 찾는다.REGEXP_SUBSTR는 부분 문자열 추출에 사용한다.REGEXP_COUNT는 등장 횟수를 센다.
댓글남기기