BOOKS/SQL 전문가 가이드
정규 표현식
DevJoy
2023. 10. 25. 01:28
SQL 전문가 가이드
SQL 전문가 가이드는 SQL 자격검정 대비 수험서로 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 최적의 성능을 발휘할 수 있도록 SQL을 작성하고 데이터베이스 프로그램이나 응용 소프트웨어의 성능을 최적화하고 데이터베이스 개체의 설계와 구현을 위해 데이터 모델링의 이해, SQL기본 및 활용, SQL 고급 활용 및 튜닝 등의 실무가이드로 구성되어 있다.
- 저자
- 한국데이터산업진흥원
- 출판
- 한국데이터산업진흥원
- 출판일
- 2021.03.15
정규 표현식
- 문자열의 규칙을 표현하는 검색 패턴
- 주로 문자열 검색과 치환에 사용
기본 문법
POSIX 연산자
기본 연산자
연산자 | 영문 | 설명 |
---|---|---|
. | dot | 모든 문자와 일치(newline제외) |
| | or | 대체 문자 구분 |
\ | backslash | 다음 문자를 일반 문자로 취급 |
앵커(anchor) : 검색 패턴의 시작과 끝을 지정
연산자 | 영문 | 설명 |
---|---|---|
^ | carrot | 문자열의 시작 |
$ | dollar | 문자열의 끝 |
(expr) | 괄호 안의 표현식을 하나의 단위로 취급 |
수량사 : 선행 표현식의 일치 횟수 지정
연산자 | 설명 |
---|---|
? | 0회 또는 1회 일치 |
* | 0회 또는 그 이상의 횟수로 일치 |
+ | 1회 또는 그 이상의 횟수로 일치 |
{m} | m회 일치 |
{m,} | 최소 m회 일치 |
{,n} | 최대 n회 일치 |
{m,n} | 최소 m회, 최대 n회 일치 |
패턴을 최대로 일치시키는 탐욕적(greedy)방식으로 동작
역 참조
연산자 | 설명 |
---|---|
\n | n번재 서브 표현식과 일치, n은 1에서 9사이의 정수 |
반복되는 패턴을 검색하거나 서브 표현식의 위치를 변경하는 용도로 사용 가능
문자리스트
연산자 | 설명 | 동일 |
---|---|---|
[char...] | 문자 리스트 중 한 문자와 일치 | |
[^char...] | 문자 리스트에 포함되지 않은 한 문자와 일치 | |
[:digit:] | 숫자 | [0-9] |
[:lower:] | 소문자 | [a-z] |
[:upper:] | 대문자 | [A-Z] |
[:alpah:] | 영문자 | [a-zA-Z] |
[:alnum:] | 영문자와 숫자 | [0-9a-zA-Z] |
[:xdigit:] | 16진수 | [0-9a-fA-F] |
[:punct:] | 구두점 기호 | [^[:alnum:][:cntrl:] |
[:blank:] | 공백 문자 | |
[:space:] | 공간 문자(space,enter,tab) |
- 문자 리스트 주 한 문자만 일치하면 패턴 일치한 것으로 처리
- 문자 리스트에서 하이픈(-)은 범위 연산자로 동작
PERL 정규 표현식 연산자
문자 클래스
연산자 | 설명 | 동일 |
---|---|---|
\d | 숫자 | [[:digit:]] |
\D | 숫자가 아닌 모든 문자 | [^[:digit:]] |
\w | 숫자와 영문자 (underbar 포함) | [[:alnum:_] |
\W | 숫자와 영문자가 아닌 모든 문자( underbar 제외) | [^[:alnum:]_] |
\s | 공백 문자 | [[:space:]] |
\S | 공백 문자가 아닌 모든 문자 | [^[:space:]] |
수량사
연산자 | 설명 |
---|---|
?? | 0회 또는 1회 일치 |
*? | 0회 또는 그 이상의 횟수로 일치 |
+? | 1회 또는 그 이상의 횟수로 일치 |
{m}? | m회 일치 |
{m,}? | 최소 m회 일치 |
{,m}? | 최대 m회 일치 |
{m,n}? | 최소 m회, 최대 n회 일치 |
패턴을 최소로 일치시키는 비탐욕적(nongreedy)방식으로 동작
정규 표현식 조건과 함수
REGEXP_LIKE 조건
REGEXP_LIKE(source_char,pattern [,match_param])
- source_char가 pattern과 일치하면 TRUE, 일치하지 않으면 FALSE 반환
- source_char : 검색 문자열
- pattern : 검색 패턴
- match_param : 일치 옵션
- i : 대소문자 무시
- c : 대소문자 구분(기본값)
- n : dot(.)을 개행 문자와 일치
- m : 다중 행 모드
- x : 검색 패턴의 공백 무시
REGEXP_REPLACE 함수
REGEXP_REPLACE(source_char,pattern [,replace_string[,position,[,occurrence[,match_param]]]])
- source_char에서 일치한 pattern을 replace_string으로 변경한 문자 값 반환
- replace_string : 변경 문자열 지정
- position : 검색 시작 위치 지정 (기본값 1)
- occurrence : 패턴 일치 횟수 지정 (기본값 1)
REGEXP_SUBSTR 함수
REGEXP_SUBSTR(source_char,pattern [,position[,occurrence[,match_param[,subexpr]]]])
- source_char에서 일치한 pattern 반환
- subexpr : 서브 표현식(0은 전체 패턴, 1이상은 서브 표현식, 기본값 0)
REGEXP_INSTR 함수
REGEXp_INSTR(source_char,pattern [,position[,occurrence[,return_opt[,match_param[,subexpr]]]]])
- source_char에서 일치한 pattern의 시작 위치를 정수로 반환
- return_opt : 반환 옵션(0은 시작 위치, 1은 다음 위치, 기본값 0)
REGEXP_COUNT 함수
REGEXP_COUNT(source_char,pattern [,position[,match_param]])
- source_char에서 일치한 pattern의 횟수 반환