start_positionで指定された開始位置からソース文字列で、occurrenceで指定されたn番目のオカレンスで指定されたパターンと一致する文字列を返します。
構文
string regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]])パラメーター
source: 必須です。 STRING型の値。 このパラメーターは、検索する部分文字列を指定します。
pattern: 必須です。 STRING型または正規表現の定数。 このパラメーターは、指定した部分文字列が一致する必要があるパターンを指定します。 正規表現の詳細については、「正規表現」をご参照ください。
start_position: オプションです。 BIGINT型の定数。 このパラメーターの値は0より大きくなければなりません。 このパラメーターを指定しない場合、デフォルト値は1です。これは、ソース文字列の最初の文字から検索が開始されることを示します。
occurrence: オプション。 BIGINT型の定数。 このパラメーターの値は0より大きくなければなりません。 このパラメーターを指定しない場合、デフォルト値は1です。これは、最初に一致した部分文字列が返されることを示します。
戻り値
STRING型の値が返されます。 戻り値は、次のルールによって異なります。
patternが空の文字列の場合、エラーが返されます。
指定されたパターンに一致する部分文字列がない場合は、nullが返されます。
start_positionまたはoccurrenceの値がBIGINT型でないか、0以下の場合、エラーが返されます。
source、pattern、start_position、occurrence、またはreturn_optionの値がnullの場合、nullが返されます。
例
例1: 指定したパターンに一致する
I love aliyun very muchstringの部分文字列を返します。 例:-- The return value is aliyun. select regexp_substr('I love aliyun very much', 'a[[:alpha:]]{5}'); -- The return value is have. select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1); -- The return value is 2. select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 2);例2: 入力パラメーターをnullに設定します。 例:
-- The return value is null. select regexp_substr('I love aliyun very much', null);
関連関数
REGEXP_SUBSTRは文字列関数です。 文字列検索と変換に関連する関数の詳細については、文字列関数.