オラクルで使用可能な正規表現
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 関数