全部產品
Search
文件中心

MaxCompute:REGEXP_INSTR

更新時間:Jun 19, 2024

計算字串sourcestart_position開始,與patternoccurrence次匹配的子串的起始或結束位置。

命令格式

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

參數說明

  • source:必填。STRING類型。源字串。

  • pattern:必填。STRING類型常量或Regex。待匹配的模型。更多Regex編寫規範,請參見Regex規範pattern為空白串時返回報錯。

  • start_position:可選。BIGINT類型常量。搜尋的開始位置。不指定時預設值為1。

  • occurrence:可選。BIGINT類型常量。指定匹配次數,不指定時預設值為1,表示搜尋第一次出現的位置。

  • return_option:可選。BIGINT類型常量。指定返回的位置。值為0或1,不指定時預設值為0,其他類型或不允許的值會返回報錯。0表示返回匹配的開始位置,1表示返回匹配的結束位置。

傳回值說明

返回BIGINT類型。return_option指定匹配的子串在source中的開始或結束位置。返回規則如下:

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

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

  • sourcepatternstart_positionoccurrencereturn_option值為NULL時,返回NULL。

使用樣本

  • 樣本1:計算字串i love www.taobao.com3開始,與o[[:alpha:]]{1}2次匹配的子串開始位置。命令樣本如下。

    --返回14。
    select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2);
  • 樣本2:計算字串i love www.taobao.com3開始,與o[[:alpha:]]{1}2次匹配的子串結束位置。命令樣本如下。

    --返回16。
    select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2, 1);
  • 樣本3:任一輸入參數為NULL。命令樣本如下。

    --返回NULL。
    select regexp_instr('i love www.taobao.com', null, 3, 2);

相關函數

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