如何在bigquery中获取字符串中正则表达式的匹配数?
Posted
技术标签:
【中文标题】如何在bigquery中获取字符串中正则表达式的匹配数?【英文标题】:How to get count of matches of a regexp in a string in bigquery? 【发布时间】:2019-03-07 18:44:51 【问题描述】:如何在 bigquery 中获取字符串中正则表达式的匹配数?我不认为 bigquery sql 支持 regexp_count。
因此,例如,您可能希望在“foo1 foo foo40”之类的字符串中计算“foo*”的匹配数,它会返回计数 2(在这种情况下,我的意思是“*”必须是非空字符串)。
谢谢!
【问题讨论】:
【参考方案1】:以下是 BigQuery 标准 SQL
您可以使用 array_length 和 regexp_extract_all 的组合,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT "foo1 foo foo40" str
)
SELECT array_length(regexp_extract_all(str, r'foo[^\s]')) matches
FROM `project.dataset.table`
【讨论】:
啊,太好了 - @MikhailBerlyant 如果你有一个短语列表phrase1、phrase2 等,并且你想获得给定字符串中每个短语的计数,该怎么办?以上是关于如何在bigquery中获取字符串中正则表达式的匹配数?的主要内容,如果未能解决你的问题,请参考以下文章