すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:REGEXP_SUBSTR

最終更新日:Jan 17, 2025

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以下の場合、エラーが返されます。

  • sourcepatternstart_positionoccurrence、またはreturn_optionの値がnullの場合、nullが返されます。

  • 例1: 指定したパターンに一致するI love aliyun very much stringの部分文字列を返します。 例:

    -- 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は文字列関数です。 文字列検索と変換に関連する関数の詳細については、文字列関数.