【发布时间】:2021-08-17 16:14:12
【问题描述】:
如何为 REGEXP_SUBSTR 函数提取最短匹配(惰性、非贪婪)?
Regex .*? 应该返回非贪婪结果。
但是 bigquery REGEXP_SUBSTR 返回 {"r": [{"l": 10, "s": 1, "t": ["1"]}, {"l": 100, "s": 3, "t": ["3", "4"]}
而不是 {"l": 100, "s": 3, "t": ["3", "4"]} 与 regex = r'\{.*?"t": \["3", "4"\]\}'
有这方面的提示吗?
注意:JSONPATH 不适用于我(即 bigquery 不支持 jsonpath 数组过滤器。)
WITH tbl AS (
SELECT r'{"r": [{"l": 10, "s": 1, "t": ["1"]}, {"l": 100, "s": 3, "t": ["3", "4"]}]}' AS jstr
)
SELECT
jstr
,REGEXP_EXTRACT(jstr, r'\{.*?"t": \["3", "4"\]\}') AS e1
FROM tbl
【问题讨论】:
标签: regex google-bigquery