regexp_instr 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 11.3 LTS 及更高版本

返回 str 中与 regexp 匹配的第一个 substring 的位置。

语法

regexp_instr( str, regexp )

参数

  • str:要匹配的 STRING 表达式。
  • regexp:具有模式的 STRING 表达式。

返回

一个 INTEGER

字符串 regexp 必须是正则表达式。 有关支持的语法,请参阅 正则表达式

使用文本时,请使用 raw-literalr 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