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

如何替换Google Big Query中不支持的正则前瞻表达式?

解决Google BigQuery中提取分隔符前最后一个值的问题

因为BigQuery使用RE2正则引擎,不支持前瞻/后顾语法,所以可以通过以下两种简便方法实现需求:

方法1:字符串拆分+数组索引

通过SPLIT函数将字符串按分隔符拆分为数组,直接取数组的倒数第二个元素(目标值对应数组中倒数第二个位置):

SELECT
  -- 替换str_col为你的字段名,替换' -> '为实际分隔符
  SPLIT(str_col, ' -> ')[SAFE_OFFSET(ARRAY_LENGTH(SPLIT(str_col, ' -> ')) - 2)] AS target_value
FROM your_table
  • SAFE_OFFSET用于避免字符串分隔符数量不足时报错,此时会返回NULL
  • 若能确保每个字符串至少包含两个分隔符(即至少3个元素),可直接用OFFSET替代SAFE_OFFSET

方法2:嵌套正则处理

先删除最后一个分隔符及其后的内容,再提取剩余字符串中最后一个分隔符后的部分:

SELECT
  -- 替换str_col为你的字段名,替换' -> '为实际分隔符
  REGEXP_EXTRACT(
    REGEXP_REPLACE(str_col, r' -> .*$', ''),
    r' -> ([^ ]+)$'
  ) AS target_value
FROM your_table
  • 第一步REGEXP_REPLACE:匹配最后一个->及其后续所有内容并删除,得到A -> B -> C
  • 第二步REGEXP_EXTRACT:从处理后的字符串中提取最后一个->后面的内容,即C

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:30:42