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