문서의 이전 판입니다!
[: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 자리 코드를 사용할 수 있게 함 |
$ | 검색 위치를 라인의 끝부분으로 지정하기 위한 앵커 메타문자 |
* [펌] 정규 표현식을 이용한 SQL 구문의 개선