ヘッダーをスキップ

Oracle Database SQL言語リファレンス
11g リリース1(11.1)

E05750-03
目次
目次
索引
索引

戻る 次へ

C Oracleの正規表現のサポート

Oracleによる正規表現の実装は、IEEEのPortable Operating System Interface(POSIX)正規表現規格およびUnicode ConsortiumのUnicode Regular Expression Guidelinesに準拠します。

この付録では、次の内容を説明します。

多言語の正規表現の構文

表C-1に、POSIX規格のExtended Regular Expression(ERE)の構文に定義されているすべての演算子を示します。Oracleは、POSIX規格にASCII(英語)データの検索用に定義されているこれらの演算子の完全な構文および検索セマンティクスに従います。演算子とその使用例、およびそれらの演算子のOracle多言語拡張の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。表の後に示す注意では、演算子とそれらの機能、およびそれらの演算子のOracle多言語拡張の詳細を示します。表C-2に、POSIX演算子のOracleのサポートおよび多言語拡張を示します。

表C-1    正規表現の演算子およびメタ記号 
演算子  説明 

\  

バックスラッシュは、そのコンテキストに応じて、次の4つの異なる意味を持つことができます。

  • バックスラッシュ自体

  • 次の文字の引用

  • 演算子の導入

  • 意味なし

 

0(ゼロ)回以上の繰返しに一致します。 

1回以上の繰返しに一致します。 

0回または1回の繰返しに一致します。 

代替一致を指定する代替演算子です。 

^  

デフォルトでは文字列の先頭に一致します。複数行モードでは、ソース文字列内の任意の行の先頭に一致します。 

$  

デフォルトでは文字列の末尾に一致します。複数行モードでは、ソース文字列内の任意の行の末尾に一致します。 

.  

サポートされるキャラクタ・セットの任意の文字(NULLを除く)に一致します。 

[ ]  

大カッコで囲んだ一致リストのいずれかの正規表現に一致します。非一致リストの正規表現はキャレット(^)で始まり、リストに示されている正規表現以外の任意の文字に一致するリストを指定します。 

( ) 

グループ化の正規表現で、1つの部分正規表現として処理されます。 

{m} 

厳密にm回の繰返しに一致します。 

{m,} 

m回以上の繰返しに一致します。 

{m,n} 

m回以上n回以下の繰返しに一致します。 

\n 

後方参照表現(nは1〜9の数字)は、\nの前のカッコで囲まれたn番目の部分正規表現に一致します。 

[..]  

1つの照合要素を指定します。複数文字要素を指定できます(スペイン語の[.ch.]など)。 

[: :]  

文字クラスを指定します([:alpha:]など)。文字クラス内の任意の文字に一致します。 

[==]  

等価クラスを指定します。たとえば、[=a=]は基本文字「a」のすべての文字に一致します。 

正規表現の演算子の多言語拡張

OracleによるPOSIX演算子の実装は、多言語データに適用される場合、POSIX規格に指定されている一致機能を拡張します。表C-2に、POSIX規格のコンテキストの演算子の関係を示します。

Oracleでは、マルチバイト文字を直接入力する手段があるか、またはファンクションを使用してマルチバイト文字を構成できる場合は、マルチバイト文字を直接入力できます。書式「\xxxx」のUnicodeエンコーディング値の16進数値は使用できません。Oracleは、文字の図形的な表現ではなく、文字のエンコードに使用されるバイト値に基づいて文字を評価します。

表C-2    POSIXと多言語の演算子の関係 
演算子  POSIXのBRE構文  POSIXのERE構文  多言語拡張 

はい 

はい 

はい 

はい 

-- 

はい 

はい 

はい 

はい 

はい 

はい 

はい 

はい 

はい 

はい 

はい 

はい 

[ ] 

はい 

はい 

はい 

( ) 

はい 

はい 

{m} 

はい 

はい 

{m,} 

はい 

はい 

{m,n} 

はい 

はい 

\n 

はい 

はい 

はい 

[..] 

はい 

はい 

はい 

[::] 

はい 

はい 

はい 

[==] 

はい 

はい 

はい 

Oracleの正規表現におけるPerlによる拡張機能

Oracle Databaseの正規表現ファンクションおよびその条件では、一般的に使用されるPerlによる演算子の多くが使用可能です。ただし、POSIX規格の一部は使用できません。表C-3に、使用可能な演算子を示します。詳細とその例については、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

表C-3    Oracleの正規表現におけるPerlによる演算子 
演算子  説明 

\d 

数字です。 

\D 

数字以外です。 

\w 

単語構成文字です。 

\W 

単語構成文字以外です。 

\s 

空白文字です。 

\S 

空白文字以外です。 

\A 

文字列の先頭、または文字列末尾の改行文字の直前のみに一致します。 

\Z 

文字列の末尾のみに一致します。 

*? 

先行のパターン要素に0回以上一致します(最短マッチ)。 

+? 

先行のパターン要素に1回以上一致します(最短マッチ)。 

?? 

先行のパターン要素に0回または1回一致します(最短マッチ)。 

{n}? 

先行のパターン要素にn回一致します(最短マッチ)。 

{n,}? 

先行のパターン要素にn回以上一致します(最短マッチ)。 

{n,m}? 

先行のパターン要素にn回以上m回以下一致します(最短マッチ)。 


戻る 次へ
Oracle
Copyright © 1996, 2008, Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引