全部產品
Search
文件中心

MaxCompute:REGEXP_EXTRACT_ALL

更新時間:Jun 19, 2024

在字串中尋找所有出現的Regex匹配模式的子字串,並把找到的字串以數組返回。

命令格式

array<T> regexp_extract_all(string <source>, string <pattern>[,bigint <group_id>])

參數說明

  • source:必填。STRING類型。待分析的字串。

  • pattern:必填。STRING類型。待匹配的模型,可以是STRING類型常量或Regex。更多Regex編寫規範,請參見Regex規範

  • group_id:可選。BIGINT類型。返回指定組的所有匹配結果,必須大於等於0。如果不指定該值, 預設返回group_id1的所有匹配結果;如果等於0pattern將被當作一個整體進行匹配。

傳回值說明

返回ARRAY類型。如果指定group_id, 返回該group_id匹配的所有結果組成的數組;如果不指定group_id, 則返回group_id1的所有匹配結果組成的數組。

使用樣本

  • 不指定group_id預設返回第一個group_id匹配到的結果。

    SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)');

    結果如下。

    +------------+
    | _c0        |
    +------------+
    | [100,300] |
    +------------+
  • 指定group_id值為2,返回第二個group_id匹配到的結果。

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

    結果如下。

    +------------+
    | _c0        |
    +------------+
    | [200,400] |
    +------------+

相關函數

REGEXP_EXTRACT_ALL函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數