如何获取bigquery中字符串中正则表达式的匹配次数?

use*_*489 3 regex google-bigquery

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

因此,例如,您可能想要计算“foo1 foo foo40”这样的字符串中“foo*”的匹配数,它将返回计数 2(在本例中,我的意思是“*”必须是非空字符串)。

谢谢!

Mik*_*ant 5

以下是 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`   
Run Code Online (Sandbox Code Playgroud)