全部產品
Search
文件中心

MaxCompute:REGEXP_SUBSTR

更新時間:Jun 19, 2024

返回從start_position位置開始,source中第occurrence次匹配指定pattern的子串。

命令格式

string regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]])

參數說明

  • source:必填。STRING類型。待搜尋的字串。

  • pattern:必填。STRING類型常量或Regex。待匹配的模型。更多Regex編寫規範,請參見Regex規範

  • start_position:可選。其他BIGINT常量,必須大於0。不指定時預設為1,表示從source的第一個字元開始匹配。

  • occurrence:可選。BIGINT常量,必須大於0。不指定時預設為1,表示返回第一次匹配的子串。

傳回值說明

返回STRING類型。返回規則如下:

  • 如果pattern為空白串,返回報錯。

  • 沒有匹配時,返回NULL。

  • start_positionoccurrence非BIGINT類型或小於等於0時,返回報錯。

  • sourcepatternstart_positionoccurrencereturn_option值為NULL時,返回NULL。

使用樣本

  • 樣本1:返回I love aliyun very much字串中與指定規則匹配的字串。命令樣本如下。

    --返回aliyun。
    select regexp_substr('I love aliyun very much', 'a[[:alpha:]]{5}');
    --返回 have。
    select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1);
    --返回 2。
    select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 2);
  • 樣本2:任一輸入參數為NULL。命令樣本如下。

    --返回NULL。
    select regexp_substr('I love aliyun very much', null);

相關函數

REGEXP_SUBSTR函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數