문서의 이전 판입니다!
[: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:] | 출력 가능한 문자 |
* [펌] 정규 표현식을 이용한 SQL 구문의 개선