regexp_count:正则匹配计数
速查结论
regexp_count(str, regexp) 是 Spark SQL 中用于统计正则表达式在字符串中匹配到的次数的函数。
语法
regexp_count(str, regexp)
返回正则表达式模式 regexp 在字符串 str 中匹配到的次数。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| str | STRING | 要搜索的字符串表达式 |
| regexp | STRING | 正则表达式字符串(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真题
