首页 > 解决方案 > 使用正则表达式在大查询查询中从 url 中排除 uuid

问题描述

我有一个表格的 url 表格:

/api/v2/order/3882-f4e2-0023-fe56

我想对不包括订单的 uuid 的 url 进行分组。我尝试过以下功能:

SELECT ... FROM ... 
GROUP BY REGEXP_EXTRACT(url , '(/[a-zA-Z0-9]+)+(?:(\\/(([a-fA-F0-9]{4}(-)*)){4}))')

但我收到以下错误:

错误:必须指定一个捕获组

我已经在这个在线测试站点中尝试过正则表达式,它与所需的 url 匹配:https ://regexr.com/40tjs

标签: regexgoogle-bigquery

解决方案


我尝试对您的原始表达式进行最低限度的调整(对于 BigQuery 标准 SQL)

REGEXP_EXTRACT(url , r'((?:/[a-zA-Z0-9]+)+)(?:/(?:(?:[a-fA-F0-9]{4}-)*) {4})')

下面给出'/api/v2/order/3882-f4e2-0023-fe56'

    /api/v2/order

推荐阅读