REGEXP_COUNT

REGEXP_COUNT

当您在处理大量文本数据时,您可能需要统计特定词汇或短语出现的次数,MaxCompute支持使用REGEXP_COUNT函数,计算指定字符在字符串中出现的次数。本文为您介绍REGEXP_COUNT函数的命令格式和使用示例。

命令格式

计算 source 中从 start_position 位置开始,匹配指定 pattern 的次数。

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

参数说明

  • source :必填。STRING类型。待搜索的字符串,其他类型会返回报错。

  • pattern :必填。STRING类型常量或正则表达式。待匹配的模型。更多正则表达式编写规范,请参见 正则表达式规范 pattern 为空串或其他类型时返回报错。

  • start_position :可选。BIGINT类型常量,必须大于0。其他类型或值小于等于0时返回报错。不指定时默认为1,表示从 source 的第一个字符开始匹配。

返回值说明

返回BIGINT类型。返回规则如下:

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

  • source pattern start_position 值为NULL时,返回NULL。

使用示例

  • 示例1:计算 abababc 中从指定位置开始,匹配指定字符的次数。命令示例如下。

    • 计算字符串 abababc 中正则表达式 a.c (以 a 开始,以 c 结束,并且中间有任何单个字符)出现的次数:

      --返回1。
      SELECT regexp_count('abababc', 'a.c');
    • 计算字符串 abababc 中从第三个字符开始,正则表达式 [[: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函数属于字符串函数, 更多查找字符串、转换字符串格式的相关函数请参见 字符串函数