regexp_extract_all函式

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

擷取 中 str 符合 regexp 表達式的所有字串,並對應至 regex 群組索引。

語法

regexp_extract_all(str, regexp [, idx] )

引數

  • str STRING:要比對的表達式。
  • regexp STRING:具有相符模式的表達式。
  • idx:選擇性整數數表達式大於或等於0,預設值為1。

傳回

ARRAY<STRING>。

字 regexp 串必須是正則表達式。 請參見 「正則表達式 」以了解所支援的語法。

使用常值時,請使用 raw-literal (r prefix) 以避免逸出字元前置處理。

regexp 可能包含多個群組。 idx 表示要擷取的 regex 群組。 idx 0 的 表示符合整個正則表達式。

常見錯誤條件

範例

從每場比賽中抽取一個吃子群

idx 選擇每場比賽要回來的吃牌組。

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 1);
 [100, 300]

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 2);
 [200, 400]

提取字串中的每個數字

> SELECT regexp_extract_all('There are 10 cats, 20 dogs, and 30 birds', r'(\d+)', 1);
 [10, 20, 30]

擷取所有標籤

> SELECT regexp_extract_all('Posts tagged #data #ai #sql', r'#(\w+)', 1);
 [data, ai, sql]

擷取無群模式的每一個匹配

當圖案沒有吃子群時,使用0的 返回 idx 整場比賽。

> SELECT regexp_extract_all('Send to alice@example.com or bob@example.org', r'\w+@\w+\.\w+', 0);
 [alice@example.com, bob@example.org]

無效的正則表達式模式

> SELECT regexp_extract_all('abc', '[invalid', 0);
  Error: INVALID_PARAMETER_VALUE.PATTERN