當您在處理大量文本資料時,您可能需要統計特定詞彙或短語出現的次數,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。
source、pattern或start_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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。