【问题标题】:How to get count of matches of a regexp in a string in bigquery?如何在bigquery中获取字符串中正则表达式的匹配数?
【发布时间】:2019-03-07 18:44:51
【问题描述】:

如何在 bigquery 中获取字符串中正则表达式的匹配数?我不认为 bigquery sql 支持 regexp_count。

因此,例如,您可能希望在“foo1 foo foo40”之类的字符串中计算“foo*”的匹配数,它会返回计数 2(在这种情况下,我的意思是“*”必须是非空字符串)。

谢谢!

【问题讨论】:

    标签: regex google-bigquery


    【解决方案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 等,并且你想获得给定字符串中每个短语的计数,该怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2020-09-28
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多