オラクルで使用可能な正規表現
Oracle で使用可能な正規表現は POSIX Extended Reuglar Exression のようである。
\d や \w などのプログラムで親しんだ文字クラスの表記も使用可能
( Perl で使用できる表記による拡張機能 )
| メタ記号、演算子 | 説明 |
| \ | 直後の文字のエスケープ、()での参照表現 \1 など |
| | | 代替一致指定 演算子 go(d|od) ⇒ 'god' or 'good') |
| ^ | 入力の開始(文頭)をあらわす |
| $ | 入力の終了(文末)をあらわす |
| ドット('.') | NULL 以外のすべての文字に一致(改行含む) |
| [] | 一致リスト、もしくはキャレット('^')をともない非一致リストを指定する |
| [.要素.] | 1 つの照合要素を指定。半角濁点文字が該当する? |
| [:文字クラス:] | 文字クラスに一致する |
| [=等価クラス=] | 日本語半角全角は該当するか? |
| () | グループ化、もしくは参照表現に使用 |
| \n | nは数字n=[1..9] 後方参照表現、n番目のグループの内容 |
直前文字要素・グループへの繰り返し属性の追加
| メタ記号、演算子 | 説明 |
| * | 0 回以上の繰り返し {0,} と同じ |
| + | 1 回以上の繰り返し {1,} と同じ |
| ? | 0 または 1 回の出現 {0,1} と同じ |
| {m} | 直前に記述した文字がm回繰り返されている |
| {m,} | 直前に記述した文字がm回以上繰り返されている |
| {m,n} | 直前に記述した文字がm回以上、n回以下繰り返されている |
Perl による 拡張表記
| メタ記号、演算子 | 説明 |
| \d | 数値 |
| \D | 数値以外 |
| \w | 単語 |
| \W | 単語以外 |
| \s | 単語の区切り文字( [ \t\n\r\f\v] ) 空白、Tab、Newline(LF:line feed)、CR(carriage return)、FF(form feed)、VT(Vertical tab) |
| \S | 単語の区切り文字以外 |
| \A | 文字の先頭 |
| \Z | 文字の末尾 |
| 繰り返し | メタ文字直後の繰り返しは常に最短マッチされる。 Perl では ?、{m} 以外は場合、最長マッチされる |
文字クラス
使用するキャラクタセットにより内容は変化する。
使用には [ ] で囲んで記述する。(表記例) [:digit:] + [] ⇒ [[:digit:]]
| 文字クラス | 内容 |
| digit | すべての数字 [0-9] |
| xdigit | すべての有効な16 進文字 [0-9A-Fa-f] |
| alpha | アルファベット文字 [a-zA-Z] |
| alnum | すべての英数字 [0-9a-zA-Z] |
| blank | すべての空白文字 |
| space | すべての空白文字 ( [ \t\n\r\f\v]:印字が不可能) |
| lower | すべてのアルファベットの小文字 |
| upper | すべてのアルファベットの大文字 |
| punct | すべての句読点文字 |
| graph | [:punct:]、[:upper:]、[:lower:] および[:digit:] のすべての文字 |
| cntrl | すべての制御文字(印字が不可能) |
| print | すべての印字可能文字 |
正規表現 SQL 関数