정규 표현식
- 문자열의 규칙을 표현하는 검색 패턴
- 주로 문자열 검색과 치환에 사용
기본 문법
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의 횟수 반환