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

Google SQL中如何使用REGEX_EXTRACT提取指定位置字符串?

Google SQL 正则提取分隔字符串指定片段实现

你的存储字符串统一以-作为片段分隔符,单片段内部无-字符,以下正则规则可直接满足提取需求,同时兼容片段内部带空格的场景(你原有使用\w的写法仅能匹配连续无空格的单词,遇到片段含空格会匹配失败)。


提取倒数第二个片段(示例对应值:Eng)

正则规则

r'-\s*([^-]+?)\s*-[^-]+$'
匹配逻辑:从字符串末尾向前定位最后一个分隔符,捕获分隔符前的相邻片段,自动过滤片段前后的多余空格。

提取第二个片段(示例对应值:Review Vid)

正则规则

r'^[^-]+-\s*([^-]+?)\s*-'
匹配逻辑:从字符串开头向后定位第一个分隔符,捕获分隔符后的相邻片段,自动过滤片段前后的多余空格。


完整查询示例

SELECT *,
  -- 提取第二个片段
  REGEX_EXTRACT(column_name, r'^[^-]+-\s*([^-]+?)\s*-') AS second_segment,
  -- 提取倒数第二个片段
  REGEX_EXTRACT(column_name, r'-\s*([^-]+?)\s*-[^-]+$') AS penultimate_segment,
  -- 优化后的最后一个片段提取逻辑,支持带空格的片段
  REGEX_EXTRACT(column_name, r'\s*([^-]+?)\s*$') AS lan
FROM your_table_name

针对你给出的示例串DadC - Review Vid - Vid - Eng - TC,上述查询返回结果为:

  • second_segment: Review Vid
  • penultimate_segment: Eng
  • lan: TC

如果你的字符串分隔符存在多空格、制表符等不规则空白,正则里的\s*会自动兼容,不需要额外调整规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:39:34