【问题标题】:Big Query Regex Extraction大查询正则表达式提取
【发布时间】:2020-07-29 17:32:11
【问题描述】:

我正在尝试从 URL 中提取 item_subtype 字段。

此正则表达式在获取第一项 item_type 时工作正常

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

但是什么是正确的正则表达式来获取从“巧克力”开始一直到“&page1”之前的所有内容

我已经尝试过了,但似乎无法让它更进一步

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

基本上,我想提取 'chocolate/cookies%20cream,vanilla'

【问题讨论】:

    标签: sql regex google-bigquery


    【解决方案1】:

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

    你可以使用

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

    请参阅regex demo

    注意事项

    • item_subtype= - 此字符串匹配为文字字符序列
    • ([^&]+) - 一个捕获组 1,它匹配 & 以外的一个或多个字符并将其捕获到由 REGEXP_EXTRACT 函数返回的单独内存缓冲区中。

    【讨论】:

    • 谢谢维克托!
    猜你喜欢
    • 2013-05-16
    • 2022-01-15
    • 2021-09-07
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多