全部产品
Search
文档中心

云原生大数据计算服务 MaxCompute:REGEXP_INSTR

更新时间:Jun 15, 2023

计算字符串sourcestart_position开始,与patternoccurrence次匹配的子串的起始或结束位置。

命令格式

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

参数说明

  • source:必填。STRING类型。源字符串。

  • pattern:必填。STRING类型常量或正则表达式。待匹配的模型。更多正则表达式编写规范,请参见正则表达式规范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函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数