Sql 大查询正则表达式提取

Sql 大查询正则表达式提取,sql,regex,google-bigquery,Sql,Regex,Google Bigquery,我正在尝试从URL中提取项目\子类型字段 此正则表达式在中可以很好地获得第一个项目item\u type 选择REGEXP\u EXTRACT('info?item\u type=冰淇淋和item\u subtype=巧克力/饼干%20奶油、香草和page=1',r'item\u type=(\w+)) 但是什么是正确的正则表达式,可以让一切从“巧克力”一直到“&page1”之前 我已经试过了,但似乎无法让它继续工作 选择REGEXP\u EXTRACT('info?item\u type=冰淇

我正在尝试从URL中提取项目\子类型字段

此正则表达式在中可以很好地获得第一个项目
item\u type

选择REGEXP\u EXTRACT('info?item\u type=冰淇淋和item\u subtype=巧克力/饼干%20奶油、香草和page=1',r'item\u type=(\w+))

但是什么是正确的正则表达式,可以让一切从“巧克力”一直到“&page1”之前

我已经试过了,但似乎无法让它继续工作

选择REGEXP\u EXTRACT('info?item\u type=冰淇淋和item\u subtype=巧克力/饼干%20奶油、香草和page=1',r'item\u subtype=(\w+[^Z]))


基本上,我想提取“巧克力/饼干%20奶油香草”

在您的情况下,
\w+
只匹配一个或多个字母、数字或下划线。您的期望值也可能包含其他字符

你可以用

SELECT REGEXP_EXTRACT('info?item_type=icecream&item_subtype=chocolate/cookies%20cream,vanilla&page=1', r'item_subtype=([^&]+)')

注释

  • item\u subtype=
    -此字符串作为文本字符序列匹配
  • ([^&]+)
    -与
    &
    以外的一个或多个字符匹配并捕获到由
    REGEXP\u EXTRACT
    函数返回的单独内存缓冲区中的捕获组1

谢谢你,Wiktor!