跳到主要内容

regexp_count:正则匹配计数

速查结论

regexp_count(str, regexp) 是 Spark SQL 中用于统计正则表达式在字符串中匹配到的次数的函数。

语法

regexp_count(str, regexp)

返回正则表达式模式 regexp 在字符串 str 中匹配到的次数。

参数说明

参数类型说明
strSTRING要搜索的字符串表达式
regexpSTRING正则表达式字符串(Java 正则表达式)

示例

> SELECT regexp_count('Steven Jones and Stephen Smith are the best players', 'Ste(v|ph)en');
2
> SELECT regexp_count('abcdefghijklmnopqrstuvwxyz', '[a-z]{3}');
8

常见报错与避坑指南

  • 重叠匹配的处理regexp_count 默认不计算重叠匹配。例如 regexp_count('aaa', 'aa') 返回 1 而非 2,因为匹配是从上次匹配结束位置继续搜索的。
  • 正则语法错误会直接报错:传入非法的正则表达式将导致运行时异常,而非返回 0。建议在开发阶段充分测试正则表达式。

Since: 3.4.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看