아시다시피 정규표현식이 2024년에 새로 추가된 범위라 자료찾기가 많이 어려웠다.
[기존 자료]
정규표현식 보강 내용
출처: 홍쌤의 데이터 랩 유튜브
[정규표현식 종류]
\d | Digit, 0, 1, 2, ...9 | [ab] | a 또는 b의 한 글자 | \숫자 | 그룹번호 |
\D | 숫자가 아닌 것 | [^ab] | a와 b 제외한 모든 문자 | [:alnum:] | 문자와 숫자 |
\s | 공백 | [0-9] | 숫자 | [:alpha:] | 문자 |
\S | 공백이 아닌 것 | [A-Z] | 영어 대문자 | [:blank;] | 공백 |
\w | 단어 | [a-z] | 영어 소문자 | [:cntrl:] | 제어문자 |
\W | 단어가 아닌 것 | [A-z] | 모든 영문자 | [:digit:] | Digits |
\t | Tab | i+ | i가 1회 이상 반복 | [:graph:] | Graphical charaters [:alnum:], [:punct:] |
\n | New Line (엔터문자) | i* | i가 0회 이상 반복 | [:lower:] | 소문자 |
^ | 시작되는 글자 | i? | i가 0회에서 1회 반복 | [:print:] | 숫자, 문자, 특수문자, 공백모두 |
$ | 마지막 글자 | i{n} | i가 n회 반복 | [:punct:] | 특수문자 |
\ | Escape Character (뒤에 기호 의미 제거) |
i{n1,n2} | i가 n1에서 n2회 반복 | [:space:] | 공백문자 |
| | 또는 | i(n,) | i가 n회 이상 반복 | [:upper:] | 대문자 |
. | 엔터를 제외한 모든 한 글자 | () | 그룹지정 | [:xdigit:] | 16진수 |
◆ REGEXP_REPLACE
- 정규식 표현을 사용한 문자열 치환 가능
[문법]
(대상, 찾을 문자열, [바꿀 문자열], [검색 위치], [발견 횟수], [옵션])
1. 특징
- 바꿀 문자열 생략 시 문자열 삭제
- 검색 위치 생략 시 1
- 발견횟수 생략 시 0 (모든)
2. 옵션
- c: 대소를 구분하여 검색
- i : 대소를 구분하지 않고 검색
- m : 패턴을 다중라인으로 선언 가능
예제1. 숫자 삭제하기
▶ 빈문자열을 전달하여 숫자를 모두 삭제 처리
예제2. 특수문자 삭제하기
▶ \w는 문자와 숫자, _를 포함
▶ \W는 문자와 숫자, _ 가 아닌 특수기호와 공백을 의미
예제3. 문자와 문자 바로 뒤에 오는 숫자를 삭제 (대소문자 구분 없이)
◆ REGEXP_SUBSTR
- 정규식 표현을 사용한 문자열 추출
- 옵션은 REGEXP_REPLACE 와 동일
[문법]
REGEXP_SUBSTR(대상, 패턴, [검색위치], [발견횟수], [옵션], [추출그룹])
특징
- 검색 위치 생략 시 1
- 발견횟수 생략 시 1
- 추출그룹은 서브패턴을 추출 시 그 중 추출할 서브패턴 번호
▶ 전화번호 구성: 숫자여러개 + . + 숫자여러개 + . + 숫자여러개
차례대로 \d+,.,\d+,.,\d+ 로 표현 가능, 그 중 첫번째 그룹 추출
◆ REGEXP_INSTR
- 주어진 문자열에서 특정패턴의 시작 위치를 반환
- 옵션 전달 불가
[문법]
REGEXP_INSTR(원본, 찾을문자열, [시작위치], [발견횟수])
특징
- 시작 위치 생략 시 처음부터 확인(기본값: 1)
- 발견횟수 생략 시 처음 발견된 문자열 위치 리턴
▶ REGEXP_INSTR(JOB_ID,'[H]',1)
JOB_ID 중 'H' 가 처음발견된 위치 숫자로 반환
▶ 다음 문자열에서 공백이 아닌 문자열 ([^ ]) 의 반복들 (+) 중 처음부터 스캔 (1) 하여 두번째 발견(2)된 것의 위치
◆ REGEXP_LIKE
- 주어진 문자열에서 특정패턴을 갖는 경우 반환(WHERE 절 사용만 가능)
- 옵션 REGEXP_REPLACE와 동일
[문법]
REGEXP_LIKE(원본, 찾을문자열, [옵션])
▶ JOB_TITLE 컬럼의 데이터 중 글자가 r로 (r$) 끝나는 데이터 출력
◆ REGEXP_COUNT
- 주어진 문자열에서 특정패턴의 횟수를 반환
- 옵션은 REGEXP_REPLACE와 동일
[문법]
REGEXP_COUNT (원본, 찾을문자열, 시작위치, [옵션])
▶ JOB_TITLE 컬럼의 데이터 중 R 로 끝나는 (R$) 데이터의 수
▶ JOB_TITLE 컬럼의 데이터 중 S로 시작하는 (^S) 데이터의 수
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 시험 과목 및 주요 내용 (0) | 2024.05.07 |
---|---|
[SQLD] 시험후기 (비전공자, 독학) (0) | 2024.03.09 |
[SQLD] 자주 틀렸던 부분 (2) | 2024.03.08 |
[SQLD] 34회 기출문제 오답노트 (0) | 2024.03.02 |
[SQLD] 30회 기출문제 오답 노트 (0) | 2024.03.02 |