You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BigQuery正则提取指定单位前的目标数字

在BigQuery中提取紧跟指定单位的数字

直接用BigQuery的REGEXP_EXTRACT函数结合正则表达式就能解决,核心是只匹配数字紧跟指定单位的组合,过滤掉不跟目标单位的数字(比如例子里的1990)。

具体SQL语句

SELECT
  product_name,
  -- 提取紧跟gr/kg/ml/pcs的数字,捕获第一个分组的数字部分
  REGEXP_EXTRACT(product_name, r'(\d+)(gr|kg|ml|pcs)') AS extracted_number
FROM
  `your-project.your-dataset.your-table`;

正则说明

  • (\d+):捕获一个或多个数字,这就是我们要提取的目标值
  • (gr|kg|ml|pcs):匹配指定的单位,确保数字后面紧跟这些单位之一
  • 整个正则只会匹配数字+目标单位的组合,像1990这种后面没有跟指定单位的数字,根本不会被匹配到,自然不会被提取

兼容数字和单位间有空格的情况

如果你的数据里存在数字和单位之间有空格的情况(比如milk 30 ml),可以把正则改成:

REGEXP_EXTRACT(product_name, r'(\d+)\s*(gr|kg|ml|pcs)')

这里的\s*用来匹配0个或多个空格,兼顾连写和空格分隔的情况。

内容的提问来源于stack exchange,提问作者Adiansyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:25:39