全部產品
Search
文件中心

MaxCompute:REGEXP_COUNT

更新時間:Sep 09, 2025

REGEXP_COUNT函數用於計算指定字元在字串中從指定位置開始出現的次數。

命令格式

BIGINT REGEXP_COUNT(STRING <source>, STRING <pattern>[, BIGINT <start_position>])

參數說明

  • source:必填。STRING類型。被匹配的字串。

  • pattern:必填。STRING類型常量或Regex。用於匹配的子字串或Regex。更多Regex編寫規範,請參見Regex規範

  • start_position:可選。BIGINT類型常量,必須大於0。不指定時預設為1,表示從source的第一個字元開始匹配。

傳回值說明

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

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

  • source非STRING類型,返回報錯。

  • pattern為空白字串或非STRING類型,返回報錯。

  • start_position非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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數