regexp_instr函式

適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 11.3 LTS 和更新版本

傳回 str 中符合 regexp 之第一個子字串的位置。

語法

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