반응형
# 오라클 정규식 (REGEXP)
- Regular Expression (정규식)
- 오라클은 10g 부터 REGEXP 함수 지원.
- 특정 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식적인 언어. (출처 : 위키백과)
## 오라클 정규식 종류
REGEXP_LIKE
- 정규식 패턴 검색 (LIKE 와 유사)
- REGEXP_LIKE(문자열, 정규식 패턴 [,매칭 매개변수])
- 사용방법 : REGEXP_LIKE(문자열, '찾고자하는 값1|찾고자하는 값2|...|찾고자하는 값n')
// Z로 시작하는 것
SELECT COL1
FROM TEST
WHERE REGEXP_LIKE (COL2, '^Z(*)');
// Z로 끝나는 것
SELECT COL1
FROM TEST
WHERE REGEXP_LIKE (COL2, '(*)Z$');
REGEXP_REPLACE
- 정규식 패턴 검색, 대체문제열로 변경
- REGEXP_REPLACE(문자열, 정규식 패턴 [, 대체문자열[, 시작위치[, 일치횟수[, 매칭 매개변수]]]])
- 사용방법1 : REGEXP_REPLACE(문자열, '대상문자열', '변경할 값') - 대상 문자열을 변경할 값으로 치환.
- 사용방법2 : REGEXP_REPLACE(문자열, '대상문자열') - 대상 문자열을 제거만 하는 경우.
// 문자열에서 A, D, F를 ''로 변경.
SELECT REGEXP_REPLACE('ABCDEFGHI', 'A|D|F', '')
FROM DUAL;
// 문자열에서 숫자를 모두 'A'로 변경.
SELECT REGEXP_REPLACE('asdasd123xfdf21asda', '\d', 'A')
FROM DUAL;
REGEXP_INSTR
- 정규식 패턴을 검색, 위치 반환
- REGEXP_INSTR(문자열, 정규식 패턴 [, 시작위치 [, 일치횟수 [, 반환할 문자위치 [, 매칭 파라미터]]]])
// 'Ja'가 처음 나타나는 위치 반환.
SELECT REGEXP_INSTR('Hello Java World!', 'Ja', 1, 1, 0, 'i')
FROM DUAL;
REGEXP_SUBSTR
- 정규식 패턴을 검색, 부분 문자 추출
- REGEXP_SUBSTR(문자열, 정규식 패턴 [, 시작위치 [, 일치횟수 [, 매칭 파라미터]]])
// 'o, d' 가 나타나면 반환.
SELECT REGEXP_SUBSTR('hello world!', 'o|d', 1, 1, 'i')
FROM DUAL
REGEXP_COUNT
- 정규식 패턴을 검색, 패턴에 일치하는 문자열 갯수 카운트 (오라클 11g)
## 메타문자
^ | 문자열의 시작을 표현 |
$ | 문자열의 끝을 표현 |
\b | 단어의 경계, 문자열 시작과 끝, 공백, 개행, 탭, 콤마, 구두점, 대시문자 등이 올 수 있음. |
\s | 공백 문자 및 탭 문자에 매치. |
\w | 단어를 만들 수 있는 글자 (알파벳 대소문자, 숫자, 언더스코어 포함) ([A-Za-z0-9_] 와 동일.) |
\W | \w에 포함되지 않는 문자들 |
## 자주 사용되는 정규 표현식
REGEXP_REPLACE(문자열, '[^A-Z0-9]', '') | 숫자, 문자 제외 모두 제거 |
REGEXP_REPLACE(문자열, "\\[.*\\]", "") | [, ] 사이의 문자를 공백 처리하기. |
REGEXP_REPLACE(문자열, '[\s]{2,}', '') | 공백 2개 이상인 경우 제거 |
REGEXP_REPLACE(문자열, '[[:punct:]]', '') | 모든 특수문자 제거 |
REGEXP_REPLACE(문자열, '[[:digit:]]', '') | 모든 숫자 제거 |
REGEXP_REPLACE(문자열, '[가-힣]', '') | 모든 한글 제거 |
REGEXP_REPLACE(문자열, '[[:digit:]|[:punct:]]', '') | 모든 숫자, 특수문자 제거 |
^[A-Z] | 대문자로 시작하는 데이터 |
[A-Z] | 대문자를 포함하는 데이터 |
[A-Z]$ | 대문자로 종료하는 데이터 |
[ㄱ-ㅎㅏ-ㅣ가-힣] | 한글을 포함하는 데이터 |
[0-9][2] | 연속해서 숫자 2개를 포함하는 데이터 |
/[a-zA-Z0-9]/ | 영문 대소문자와 숫자로만 구성 |
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ | 이메일 주소 |
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/ | 패스워드 (8자 이상, 영문 대소문자, 숫자, 특수문자 각 최소 1개 이상 포함) |
참고 : https://support.google.com/a/answer/1371415?hl=ko
반응형
'기타' 카테고리의 다른 글
DB2 란? (0) | 2022.10.04 |
---|---|
IT 관련 각종 자격정보 (0) | 2022.09.03 |
포워딩, 리다이렉트 (0) | 2022.08.25 |
프레임워크, 통합개발환경, 라이브러리, API, 스프링, 스프링 부트 (0) | 2022.08.14 |
인텔리 제이 포트 설정 변경방법 (0) | 2022.08.09 |