1. 정규표현식(Regular Expression)
정규식 표현은 문자열이 가지고 있는 규칙을 파악한 뒤 해당 규칙을 만족하는 문자만 추출할 때 활용된다. 즉, 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어를 말한다.
정규표현식을 활용하면 SQL 뿐만 아닌 Python, R 등 다양한 언어에서도 사용할 수 있으며, 여러 정규표현식을 섞어 사용하면 강력한 성능을 발휘한다는 장점이 있다.
2. 정규표현식 기본 문법
- 문자/숫자/특수 기호 지정 표현식
| 표현식 | 설명 |
| \d | 숫자 |
| \D | 숫자가 아닌 모든 것 |
| \w | 글자 (영어, 숫자, 한글) + _ (언더바) |
| \W | 글자가 아닌 모든 것 (특수기호, 공백) |
| \s | 공백 |
| \t | 탭 |
| \n | 엔터 |
| [[:digit:]] | 숫자 |
| [[:alpha:]] | 문자 |
| [[:alnum:]] | 숫자 + 문자 |
| [[:punct:]] | 특수기호 |
- 반복 횟수를 지정하는 표현식
| 표현식 | 설명 |
| ? | 0회 또는 1회 |
| * | 0회 이상 |
| + | 1회 이상 |
| {n} | n회 |
| {n,} | n회 이상 |
| {n, m} | n회 이상 m회 이하 |
- 여러 패턴을 지정하는 표현식
| 표현식 | 설명 |
| [ab] | a 또는 b 한 글자 |
| [a-z] | 영문 소문자 한 글자 |
| [A-Z] | 영문 대문자 한 글자 |
| [A-z] | 영문 한 글자 (대소구분 X) |
| [가-힣] 또는 [가-힝] | 한글 한 글자 |
| [^ab] | a와 b를 제외한 |
- 기타
| 표현식 | 설명 |
| . | 엔터를 제외한 모든 한 글자 (숫자, 문자, 특수기호, 공백) |
| ^ | 시작 |
| $ | 끝 |
| a|b | a 또는 b |
| () | 그룹지정 |
| \ | escape character (일반기호화) |
3. 정규식 함수
| 함수명 | 설명 | 문법 |
| REGEXP_SUBSTR() | 패턴과 일치하는 부분 문자열 추출 | REGEXP_SUBSTR(대상, 패턴, [검색위치], [발견횟수], [옵션], [추출그룹]) |
| REGEXP_REPLACE() | 패턴과 일치하는 문자열 치환 | REGEXP_REPLACE(대상, 찾을문자열, [바꿀문자열], [검색위치], [발견횟수], [옵션]) |
| REGEXP_INSTR() | 패턴 시작 위치 반환 | REGEXP_INSTR(원본, 찾을문자열, [시작위치], [발견횟수]) |
| REGEXP_LIKE() | 패턴이 일치하는지 여부를 반환 | REGEXP_LIKE(원본, 찾을문자열, [옵션]) |
| REGEXP_COUNT() | 패턴 횟수 반환 | REGEXP_COUNT (원본, 찾을문자열, 시작위치, [옵션]) |