【发布时间】:2019-03-07 18:44:51
【问题描述】:
如何在 bigquery 中获取字符串中正则表达式的匹配数?我不认为 bigquery sql 支持 regexp_count。
因此,例如,您可能希望在“foo1 foo foo40”之类的字符串中计算“foo*”的匹配数,它会返回计数 2(在这种情况下,我的意思是“*”必须是非空字符串)。
谢谢!
【问题讨论】:
标签: regex google-bigquery
如何在 bigquery 中获取字符串中正则表达式的匹配数?我不认为 bigquery sql 支持 regexp_count。
因此,例如,您可能希望在“foo1 foo foo40”之类的字符串中计算“foo*”的匹配数,它会返回计数 2(在这种情况下,我的意思是“*”必须是非空字符串)。
谢谢!
【问题讨论】:
标签: regex google-bigquery
以下是 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`
【讨论】: