全部產品
Search
文件中心

MaxCompute:REGEXP_COUNT

更新時間:Jun 19, 2024

當您在處理大量文本資料時,您可能需要統計特定詞彙或短語出現的次數,MaxCompute支援使用REGEXP_COUNT函數,計算指定字元在字串中出現的次數。本文為您介紹REGEXP_COUNT函數的命令格式和使用樣本。

命令格式

計算source中從start_position位置開始,匹配指定pattern的次數。

bigint regexp_count(string <source>, string <pattern>[, bigint <start_position>])

參數說明

  • source:必填。STRING類型。待搜尋的字串,其他類型會返回報錯。

  • pattern:必填。STRING類型常量或Regex。待匹配的模型。更多Regex編寫規範,請參見Regex規範pattern為空白串或其他類型時返回報錯。

  • start_position:可選。BIGINT類型常量,必須大於0。其他類型或值小於等於0時返回報錯。不指定時預設為1,表示從source的第一個字元開始匹配。

傳回值說明

返回BIGINT類型。返回規則如下:

  • 如果沒有匹配成功,返回0。

  • sourcepatternstart_position值為NULL時,返回NULL。

使用樣本

  • 樣本1:計算abababc中從指定位置開始,匹配指定字元的次數。命令樣本如下。

    • 計算字串abababc中Regexa.c(以a開始,以c結束,並且中間有任何單個字元)出現的次數:

      --返回1。
      SELECT regexp_count('abababc', 'a.c');
    • 計算字串abababc中從第三個字元開始,Regex[[:alpha:]]{2}(任意連續兩個字母)出現的次數:

      --返回2。
      SELECT regexp_count('abababc', '[[:alpha:]]{2}', 3);
  • 樣本2:任一輸入參數為NULL。命令樣本如下。

    --返回NULL。
    SELECT regexp_count('abababc', null);
  • 樣本3:計算:出現在JSON字串{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}中的次數。命令樣本如下。

    --返回4。
    SELECT regexp_count('{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}',':');

相關函數

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