presto 正則提取函式
阿新 • • 發佈:2021-01-15
regexp_extract_all
正則提取欄位的部分內容,返回型別為array
.
regexp_extract_all(string, pattern) -> array(varchar)
測試
> SELECT regexp_extract_all('1a 2b 14m', '\d+');
_col0
------------
[1, 2, 14]
還可以利用正則組
> SELECT regexp_extract_all('1a 2b 14m', '(\d+)([a-z]+)', 2);
_col0
-----------
[a, b, m]
regexp_extract
regexp_extract(string, pattern) → varchar
僅僅返回匹配的第一條資料
> SELECT regexp_extract('1a 2b 14m', '\d+'); -- 1
_col0
-------
1
這種情況也可以利用分組提取部分
> SELECT regexp_extract('1a 2b 14m', '(\d+)([a-z]+)', 2); -- 'a';
_col0
-------
a
總結
- 提取所有匹配內容用
regexp_extract_all
,只提取第一個匹配用regexp_extract