适用于:
Databricks SQL
Databricks Runtime 11.3 LTS 及更高版本
返回 str 中与 regexp 匹配的第一个 substring 的位置。
语法
regexp_instr( str, regexp )
参数
-
str:要匹配的STRING表达式。 -
regexp:具有模式的STRING表达式。
返回
一个 INTEGER。
字符串 regexp 必须是正则表达式。 有关支持的语法,请参阅 正则表达式 。
使用文本时,请使用 raw-literal (r prefix) 以避免转义字符预处理。
如果任一参数为 NULL,则结果为 NULL。 如果未找到模式,则结果为 0。
常见错误条件
示例
查找第一个匹配的位置
模式 Ste(v|ph)en 在字符串开头匹配 Steven ,因此位置为 1。
> SELECT regexp_instr('Steven Jones and Stephen Smith are the best players', 'Ste(v|ph)en');
1
查找第一位数字的位置
位置基于 1。
> SELECT regexp_instr('Order 1234 shipped', r'\d');
7
查找字符的位置
> SELECT regexp_instr('alice@example.com', r'@');
6
无匹配返回 0
> SELECT regexp_instr('Mary had a little lamb', 'Ste(v|ph)en');
0
NULL 输入返回 NULL
> SELECT regexp_instr(NULL, 'Ste(v|ph)en');
NULL
> SELECT regexp_instr('Mary had a little lamb', NULL);
NULL
无效的正则表达式模式
> SELECT regexp_instr('abc', '[invalid');
Error: INVALID_PARAMETER_VALUE.PATTERN