[:lower:]
]는 소문자와 매치되며 d[[:lower:]
]{5}는 5 개의 연속적인 소문자와 매치됩니다.[:digit:]
] 은 숫자로 시작되는 패턴과 매칭됩니다. SELECT zip FROM zipcode WHERE REGEXP_LIKE(zip, '[^[:digit:]]') ZIP ----- ab123 123xy 007ab abcxy
SQL> SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234', '[[:digit:]]{5}$') AS rx_instr FROM dual RX_INSTR ---------- 45
[[:digit:]]{5}(-[[:digit:]]{4})?$.
SQL> SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234-1234', ' [[:digit:]]{5}(-[[:digit:]]{4})?$') AS starts_at FROM dual STARTS_AT ---------- 44
SQL> SELECT REGEXP_SUBSTR('first field, second field , third field', ', [^,]*,') FROM dual REGEXP_SUBSTR('FIR ------------------ , second field ,
SQL> SELECT REPLACE('Joe Smith',' ', ' ') AS REPLACE FROM dual REPLACE --------- Joe Smith
SQL> SELECT REGEXP_REPLACE('Joe Smith','( ){2,}', ' ') AS RX_REPLACE FROM dual RX_REPLACE ---------- Joe Smith
SQL> SELECT REGEXP_REPLACE('Ellen Hildi Smith', '(.*) (.*) (.*)', '\3, \1 \2') FROM dual REGEXP_REPLACE('EL ------------------ Smith, Ellen Hildi
SQL> SELECT REGEXP_SUBSTR('The final test is is the implementation', '([[:alnum:]]+)([[:space:]]+)\1') AS substr FROM dual SUBSTR ------ IS IS
ALTER TABLE students ADD CONSTRAINT stud_ssn_ck CHECK (REGEXP_LIKE(ssn, '^([[:digit:]]{3}-[[:digit:]]{2}-[[:digit:]]{4}|[[:digit:]]{9})$'))
Metacharacter | 설명 |
---|---|
^ | 라인의 시작 부분에 표현식을 적용 |
$ | 라인의 끝부분에 표현식을 적용 |
Quantifier | 설명 |
---|---|
* | 0 회 또는 그 이상 횟수로 매치 |
? | 0 회 또는 1 회 매치 |
+ | 1 회 또는 그 이상 횟수로 매치 |
{m} | 정확히 m 회 매치 |
{m,} | 최소한 m 회 매치 |
{m, n} | 최소 m 회, 최대 n 회 매치 |
Character Class | 설명 |
---|---|
[:alpha:] | 알파벳 문자 |
[:lower:] | 소문자 알파벳 문자 |
[:upper:] | 대문자 알파벳 문자 |
[:digit:] | 숫자 |
[:alnum:] | 알파벳/숫자 |
[:space:] | 출력되지 않는 공백 문자(예: carriage return, newline, vertical tab, form feed 등 |
[:punct:] | 구두점 기호 |
[:cntrl:] | (출력되지 않는) 컨트롤 문자 |
[:print:] | 출력 가능한 문자 |
Metacharacter | 설명 |
---|---|
| | Alternation 대체 문자를 구분 (그룹핑 연산자 ()와 함께 사용하기도 함) |
( ) | Group 반복 연산자 또는 백레퍼런스(backreference)를 위해 대체 유닛을 서브표현식으로 그룹화 (“백레퍼런스” 섹션 참고) |
[char] | Character list I문자 리스트. 문자 리스트 내부에 위치하는 대부분의 메타문자는 일반 문자로 인식됨. 그 예외가 캐럿(^ ) 기호와 하이픈(-) 기호 |
문법 | 설명 |
---|---|
REGEXP_LIKE(source_string, pattern[, match_parameter]) | source_string은 문자 데이터타입 지원 (CHAR, VARCHAR2, CLOB, NCHAR, NVARCHAR2, NCLOB 단 LONG 은 제외). pattern매개변수는 정규 표현식을 참조하는 또 다른 이름. 옵션으로 제공되는 match_parameter를 이용하여 newline 문자의 처리, 멀티라인 포맷의 유지, 대소문자 구분 등을 처리할 수 있음. |
문법 | 설명 |
---|---|
REGEXP_INSTR(source_string, pattern [, start_position [, occurrence [, return_option [, match_parameter]]]]) | pattern을 검색하여 패턴의 첫 번째 위치를 반환. 필요한 경우 start_position y을 이용하여 검색을 시작할 위치를 지정할 수 있음. occurrence 매개변수는 같은 패턴을 여러 번 검색하고자 하는 경우에 사용(디폴트는 1). return_option은 패턴의 시작 위치를 반환(디폴트 값은 0). 1로 설정되는 경우 매치된 패턴의 다음 문자 위치를 반환. |
문법 | 설명 |
---|---|
매치되어야 하는 빈 공백 | |
[:digit:] | POSIX “numeric digit” 클래스 |
] | 문자 리스트(character list)의 끝 |
{5} | 문자 리스트에 대해 정확히 5 회 반복 |
( | 서브표현식(subexpression)의 시작 부분 |
- | 하이픈(-) 문자 (문자 리스트 내의 range 메타문자로 사용되지 않았음에 주의) |
[ | 문자 리스트의 시작 부분 |
[:digit:] | POSIX [:digit:] 클래스 |
[ | 문자 리스트의 시작 부분 |
] | 문자 리스트의 끝 부분 |
{4} | 문자 리스트를 정확히 4 회 반복 |
) | 서브표현식을 묶는 괄호 기호 |
? | ? 반복 연산자는 그룹핑된 서브표현식을 0 회 또는 1 회 매치하여 옵션으로 4 자리 코드를 사용할 수 있게 함 |
$ | 검색 위치를 라인의 끝부분으로 지정하기 위한 앵커 메타문자 |
문법 | 설명 |
---|---|
REGEXP_SUBSTR(source_string, pattern [, position [, occurrence [, match_parameter]]]) | REGEXP_SUBSTR 함수는 패턴애 매치되는 서브문자열을 반환. |
문법 | 설명 |
---|---|
REGEXP_REPLACE(source_string, pattern [, replace_string [, position [,occurrence, [match_parameter]]]]) | 매치된 패턴을 지정된 replace_string으로 대체하고, 복잡한 검색/대체 작업을 가능하게 하는 함수. |
Metacharacter | 설명 | |
---|---|---|
\digit | Backslash | 백슬래시 뒤에 1-9 사이의 숫자를 명시하여, 괄호 처리된 N 번째 서브표현식을 참조하기 위해 사용. (참고: 백슬래시는 정규 표현식에서 다른 의미로 사용되기도 함. 문맥에 따라 Escape 문자를 의미할 수도 있음. |
정규 표현식 아이템 | 설명 |
---|---|
( | 첫 번째 서브표현식의 시작 |
. | (newline을 제외한) 임의의 단일 문자와 매치 |
* | 반복 연산자 - 앞의 . 메타문자와 0 회에서 n 회까지 매치 |
) | 첫 번째 서브표현식의 마지막. 매치 결과는 \1 에 캡처됨(예제에서는 Ellen을 캡처) |
공백 기호 | |
( | 두 번째 서브표현식의 시작 |
. | newline을 제외한 임의의 단일 문자와 매치 |
* | 반복 연산자 - 앞의 . 메타문자와 0 회에서 n 회까지 매치 |
) | 두 번째 서브표현식의 마지막; 매치 결과는 \2 에 캡처됨(예제에서는 Hildi를 저장). |
공백 기호 | |
( | 세 번째 서브표현식의 시작 |
. | newline을 제외한 임의의 단일 문자와 매치 |
* | 반복 연산자 - 앞의 . 메타문자와 0 회에서 n 회까지 매치 |
) | 세 번째 서브표현식의 끝 부분. 매치 결과는 \3 에 캡처(예제에서는 Smith를 저장). |
정규 표현식 아이템 | 설명 |
---|---|
^ | 라인 문자의 시작(정규 표현식은 매치되기 이전의 문자를 가져 올 수 없음.) |
( | 서브표현식을 시작하고 | 메타문자를 이용하여 대체 목록을 제공 |
[ | 문자 리스트(character list)의 시작 |
[:digit:] | POSIX “numeric digit” 클래스 |
] | 문자 리스트의 끝 부분 |
{3} | 문자 리스트를 정확하게 3 회 반복 적용 |
- | 하이픈 |
[ | 문자 리스트의 시작 |
[:digit:] | POSIX numeric digit 클래스 |
] | 문자 리스트의 끝 부분 |
{2} | 문자 리스트를 정확하게 2 회 반복 적용 |
- | 또 다른 하이픈 기호 |
[ | 문자 리스트의 시작 |
[:digit:] | POSIX numeric digit 클래스 |
] | 문자 리스트의 끝 부분 |
{4} | 문자 리스트를 정확하게 4 회 반복 적용 |
| | 대체(alternation) 메타문자 - 첫 번째 선택을 종료하고 두 번째 대체 표현식을 시작 |
[ | 문자 리스트의 시작 |
[:digit:] | POSIX numeric digit 클래스. |
] | 문자 리스트의 끝 부분 |
{9} | 문자 리스트를 정확하게 9 회 반복 |
) | 대체를 위해 사용된 서브표현식 그룹을 종료하는 괄호 기호 |
$ | 라인의 끝부분을 의미하는 앵커 메타문자 (매치된 패턴 이후에 어떤 문자도 뒤따라 올 수 없음) |