1. 程式人生 > 其它 >presto 正則提取函式

presto 正則提取函式

技術標籤:prestopresto正則

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