使用大查询REGEX提取“”之间的所有字符

时间:2019-12-05 20:13:55

标签: regex google-bigquery

我只需要从这个较大的字符串中提取'“ Loc”:“ CART”,“:

hits_eventInfo_eventLabel = {"AV":6,"CV":1,"PV":1,"AS":"1,2,3,4","Loc":"CART","PN":"Supreme Lover's® - 12\" Medium","PS":"6716a12c-0067-4d72-b560-a0dbd1197185"}

“ Loc”将始终保持不变,“ CART”所在的值可能会更改。

我正在尝试以下sql:

REGEXP_EXTRACT(hits_eventInfo_eventLabel, '"Loc":".*",') as Recommendation_Location

,但是它将返回字符串的整个其余部分,从“ Loc”之后开始。

我在Google BigQuery中使用标准的sql,并且一直在查看所有文档,但是似乎无法弄清楚如何仅在引号内捕获字符。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

以下是用于BigQuery标准SQL

代替

REGEXP_EXTRACT(hits_eventInfo_eventLabel, '"Loc":".*",')   

返回

Row Recommendation_Location  
1   "Loc":"CART","PN":"Supreme Lover's® - 12" Medium",   

使用

REGEXP_EXTRACT(hits_eventInfo_eventLabel, '"Loc":".*?",')   

返回

Row Recommendation_Location  
1   "Loc":"CART",    

您可以看到,唯一的区别是-您需要在正则表达式中添加额外的?字符