適用於:
Databricks SQL
Databricks Runtime
擷取 中 str 符合 regexp 表達式的所有字串,並對應至 regex 群組索引。
語法
regexp_extract_all(str, regexp [, idx] )
引數
-
strSTRING:要比對的表達式。 -
regexpSTRING:具有相符模式的表達式。 -
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