정규 표현식

2023. 10. 25. 01:28BOOKS/SQL 전문가 가이드

 
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의 횟수 반환

'BOOKS > SQL 전문가 가이드' 카테고리의 다른 글

TCL  (1) 2023.10.25
DML  (0) 2023.10.25
PIVOT절과 UNPIVOT절  (0) 2023.10.25
계층형 질의와 셀프 조인  (0) 2023.10.25
Top N 쿼리  (1) 2023.10.25