如何使 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 Connector for Excel .iqy文件以使其中已包含SQL语句而不是依赖于Excel单元格的输入?
BigQuery 和 Firebase - 如何确定每周增长