如何使 BigQuery 中的 REGEXP_SUBSTR() 函数匹配非贪婪?

Posted

技术标签:

【中文标题】如何使 BigQuery 中的 REGEXP_SUBSTR() 函数匹配非贪婪?【英文标题】:How to make REGEXP_SUBSTR() function in BigQuery match non-greedy? 【发布时间】:2021-07-20 20:37:00 【问题描述】:

我对正则表达式相当陌生,我正在尝试使用 BigQuery 中的函数 REGEXP_SUBSTR() 从字符串中提取“值”部分。字符串有两种可能的形式:

A:value, B:someothervalue 在这种情况下我会使用A:(.*),

B:someothervalue, A:value 在这种情况下我会使用A:(.*)

我怎样才能使一个表达式同时适用于这两种情况?现在,我正在查看A:(.*)[,],但这仅在 A 结束时才有效。否则,它将始终匹配 括号而不是逗号。

我知道这个问题可能有点令人困惑,所以我深表歉意,并提前感谢

【问题讨论】:

【参考方案1】:

在你的情况下,你可以使用

\bA:([^,]+)

请参阅regex demo。 详情

\bA: - A 作为整个单词和 : char ([^,]+) - 捕获组 1:除逗号和 之外的一个或多个字符。

【讨论】:

以上是关于如何使 BigQuery 中的 REGEXP_SUBSTR() 函数匹配非贪婪?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 中的多个左连接

如何编辑BigQuery Connector for Excel .iqy文件以使其中已包含SQL语句而不是依赖于Excel单元格的输入?

Bigquery SQL 中的拆分函数

BigQuery 和 Firebase - 如何确定每周增长

Google BigQuery SQL:使滚动平均子查询或加入对大型数据集更有效

使 BigQuery 表数据保持最新