REGEXP_SUBSTR
REGEXP_SUBSTR 関数は、ストリングで正規表現パターンに一致するサブストリングの 1 つのオカレンスを戻します。
>>-REGEXP_SUBSTR--(--source-string--,--pattern-expression-------> >--+--------------------------------------------------------+--)->< '-,--start--+------------------------------------------+-' '-,--occurence--+------------------------+-' '-,--flags--+----------+-' '-,--group-'
- source-string
- その中で検索が行われるストリングを指定する式。 式は、組み込み文字ストリング、グラフィック・ストリング、数値、日時のいずれかのデータ・タイプの値を戻す必要があります。 値が UTF-16 DBCLOB ではない場合、正規表現パターンを検索する前に、暗黙的に UTF-16 DBCLOB にキャストされます。 FOR BIT DATA 属性の文字ストリングと、バイナリー・ストリングはサポートされません。 ストリングの長さが 1 GB を超えてはなりません。
- pattern-expression
- 検索パターンの正規表現ストリングを指定する式。
式は、組み込み文字ストリング、グラフィック・ストリング、数値、日時のいずれかのデータ・タイプの値を戻す必要があります。
値が UTF-16 DBCLOB ではない場合、正規表現パターンを検索する前に、暗黙的に UTF-16 DBCLOB にキャストされます。
FOR BIT DATA 属性の文字ストリングと、バイナリー・ストリングはサポートされません。
ストリングの長さが 32K を超えてはなりません。
有効な pattern-expression は、検索のパターンを記述する文字および制御文字のセットで構成されます。 有効な制御文字の説明については、正規表現の制御文字 を参照してください。
- start
- 検索が開始される source-string 内の位置を指定する式。 式は任意の組み込み数値、文字ストリング、またはグラフィック・ストリングのデータ・タイプの値を戻す必要があります。 引数は、関数を評価する前に INTEGER にキャストされます。INTEGER への変換について詳しくは、INTEGER または INTを参照してください。 整数の値は、1 以上でなければなりません。 整数の値が source-string の実際の長さより大きい場合、結果は NULL 値になります。
- occurrence
- source-string での pattern-expression のどのオカレンスを検索するかを指定する式。 式は任意の組み込み数値、文字ストリング、またはグラフィック・ストリングのデータ・タイプの値を戻す必要があります。 引数は、関数を評価する前に INTEGER にキャストされます。INTEGER への変換について詳しくは、INTEGER または INTを参照してください。整数の値は、1 以上でなければなりません。 occurrence が指定されない場合、デフォルト値は 1 で、pattern-expression の最初のオカレンスのみが考慮されることを示します。
- flags
- パターン・マッチングの特性を制御するフラグを指定する式。式は、組み込み文字ストリングまたはグラフィック・ストリングのいずれかのデータ・タイプの値を戻す必要があります。FOR BIT DATA 属性の文字ストリングと、バイナリー・ストリングはサポートされません。
このストリングには、1 つ以上の有効なフラグ値を含めることができます。
フラグ値の組み合わせは有効でなければなりません。
空ストリングは、値「c」と同じです。
有効なフラグ文字の説明については、正規表現のフラグ値 を参照してください。
- group
- source-string での pattern-expression のどのキャプチャー・グループを戻すかを指定する式。 式は任意の組み込み数値、文字ストリング、またはグラフィック・ストリングのデータ・タイプの値を戻す必要があります。 引数は、関数を評価する前に INTEGER にキャストされます。INTEGER への変換について詳しくは、INTEGER または INTを参照してください。整数の値は、0 以上でなければならず、pattern-expression 内のキャプチャー・グループの数より大きくてはなりません。 group を指定しない場合、デフォルトは 0 で、パターン全体と一致するストリング全体が戻されることを示します。
この関数の結果はストリングです。 結果のデータ・タイプは、source-string のデータ・タイプによって異なります。
source-string のデータ・タイプ | REGEXP_SUBSTR の場合の結果のデータ・タイプ |
---|---|
CHAR や VARCHAR または数値や日時 | VARCHAR |
CLOB | CLOB |
GRAPHIC または VARGRAPHIC | VARGRAPHIC |
DBCLOB | DBCLOB |
結果のデータ・タイプの長さ属性は、source-string の長さ属性と同じです。 結果の実際の長さは、ストリング内で pattern-expression に一致するオカレンスの長さです。 pattern-expression が見つからない場合、結果は NULL 値になります。
結果の CCSID は、source-string と同じです。
REGEXP_SUBSTR 関数の引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。引数のいずれかが NULL の場合、その結果は NULL 値です。
注
前提条件: REGEXP_SUBSTR 関数を使用するには、 International Components for Unicode (ICU) オプションがインストールされていなければなりません。
処理: 正規表現の処理は、 International Components for Unicode (ICU) 正規表現インターフェースを使用して行われます。 詳しくは、http://userguide.icu-project.org/strings/regexp を参照してください。
代替構文: REGEXP_EXTRACT は REGEXP_SUBSTR の同義語です。
例
- 例 1: 任意の文字の後に 'o' があるパターンに一致するストリングを戻します。
結果は 'lo' です。SELECT REGEXP_SUBSTR('hello to you', '.o',1,1) FROM sysibm.sysdummy1
- 例 2: 任意の文字の後に 'o' があるパターンに一致するストリングの 2 番目のオカレンスを戻します。
結果は 'to' です。SELECT REGEXP_SUBSTR('hello to you', '.o',1,2) FROM sysibm.sysdummy1
- 例 3: 任意の文字の後に 'o' があるパターンに一致するストリングの 3 番目のオカレンスを戻します。
結果は 'yo' です。SELECT REGEXP_SUBSTR('hello to you', '.o',1,3) FROM sysibm.sysdummy1