オラクルで使用可能な正規表現

Oracle で使用可能な正規表現は POSIX Extended Reuglar Exression のようである。
\d や \w などのプログラムで親しんだ文字クラスの表記も使用可能
( Perl で使用できる表記による拡張機能 )

メタ記号、演算子説明
\直後の文字のエスケープ、()での参照表現 \1 など
代替一致指定 演算子 go(d|od) ⇒ 'god' or 'good')
^入力の開始(文頭)をあらわす
$入力の終了(文末)をあらわす
ドット('.')NULL 以外のすべての文字に一致(改行含む)
[]一致リスト、もしくはキャレット('^')をともない非一致リストを指定する
[.要素.]1 つの照合要素を指定。半角濁点文字が該当する?
[:文字クラス:]文字クラスに一致する
[=等価クラス=]日本語半角全角は該当するか?
()グループ化、もしくは参照表現に使用
\nnは数字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 関数

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)