REGEXP_INSTR関数は、POSIXスタイルの正規表現の文字列を検索します。 この関数は、一致する文字列内の位置を返します。
構文
INTEGEXP_INSTR
(
srcstrテキスト、
パターンテキスト、
位置INTデフォルト1、
発生INTデフォルト1、
returnparam INT DEFAULT 0、
修飾子TEXT DEFAULT NULL,
部分表現INTデフォルト0、) パラメーター
パラメーター | 説明 |
srcstr | 検索する文字列。The string to search. |
pattern | REGEXP_INSTRが検索する正規表現。 |
position | ソース文字列の開始位置を示す整数値。 デフォルト値は 1 です。 |
発生 | 検索された文字列で複数のパターンが発生した場合に返される一致を指定します。 デフォルト値は 1 です。 |
returnparam | REGEXP_INSTRが期待どおりに返す文字列内の場所を指定する整数値。 デフォルト値は 0 です。 指定:
|
修飾子 | パターンマッチングの動作を制御する値。 デフォルト値は NULL です。 PolarDBでサポートされている修飾子の一覧については、「PostgreSQLコアドキュメント」をご参照ください。 |
subexpression | REGEXP_INSTRによって返されるパターンの部分を識別する整数値。 subexpressionのデフォルト値は0です。 部分式に値を指定する場合は、パターンに1つ (または複数) の括弧を含めて、検索する値の一部を分離する必要があります。 subexpressionで指定された値は、どの括弧のセットが返されるかを示します。 たとえば、subexpressionの値が2の場合、REGEXP_INSTRは2番目の括弧内に含まれる値を返します。 |
例
次の例では、REGEXP_INSTRは、3つの連続した数字を含むパターンの最初の出現について、電話番号を含む文字列を検索します。
polardb=# SELECT REGEXP_INSTR('800-555-1212 ', '[0-9][0-9][0-9]', 1, 1) DUALから;
regexp_instr
--------------
1
(1行) コマンドはREGEXP_INSTRに最初の発生の位置を返すように指示します。 3つの連続した数字の2番目の出現の開始を返す場合は、次のコマンドを使用します。
polardb=# SELECT REGEXP_INSTR('800-555-1212 ', '[0-9][0-9][0-9]', 1, 2) DUALから;
regexp_instr
--------------
5
(1行)