regexp_instr
regexp_instr函数用于计算字符串source从start_position开始,与pattern第occurrence次匹配的子串的起始或结束位置。
命令格式
regexp_instr(string <source>, string <pattern>[,bigint <start_position>[, bigint <occurrence>[, bigint <return_option>]]])
参数说明
参数 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
source |
是 |
STRING |
源字符串。 |
pattern |
是 |
STRING |
STRING类型常量或正则表达式。待匹配的模型。pattern为空串时返回报错。 |
start_position |
否 |
BIGINT |
BIGINT类型常量。搜索的开始位置。不指定时默认值为1。 |
occurrence |
否 |
BIGINT |
BIGINT类型常量。指定匹配次数,不指定时默认值为1,表示搜索第一次出现的位置。 |
return_option |
否 |
BIGINT |
BIGINT类型常量。指定返回的位置。值为0或1,不指定时默认值为0,其他类型或不允许的值会返回报错。0表示返回匹配的开始位置,1表示返回匹配的结束位置。 |
返回值说明
返回BIGINT类型。return_option指定匹配的子串在source中的开始或结束位置。
- 如果pattern为空串,返回报错。
- start_position或occurrence非BIGINT类型或小于等于0时,返回报错。
- source、pattern、start_position、occurrence或return_option值为NULL时,返回NULL
示例代码
返回6。
select regexp_instr('a1b2c3d4', '[0-9]', 3, 2);
返回NULL。
select regexp_instr('a1b2c3d4', null, 3, 2);