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,返回報錯。
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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。