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

BigQuery中提取字符串最后一个指定字符前的内容

解决BigQuery中提取最后一个下划线前文本的问题

方法1:使用REGEXP_REPLACE替换最后一个下划线及后续内容

直接通过正则匹配最后一个下划线及其后面的所有内容,替换为空字符串即可。BigQuery支持这种写法,无需依赖前瞻语法:

SELECT 
  string_column,
  REGEXP_REPLACE(string_column, r'_[^_]*$', '') AS result
FROM your_table;
  • 正则说明:_[^_]*$ 匹配最后一个下划线(_),加上后面所有非下划线字符([^_]*)直到字符串结尾($),替换为空后就得到最后一个下划线前的内容。

方法2:结合REVERSE与INSTR定位截取

如果不想用正则,也可以通过反转字符串来定位最后一个下划线的位置:

SELECT 
  string_column,
  REVERSE(SUBSTR(REVERSE(string_column), INSTR(REVERSE(string_column), '_') + 1)) AS result
FROM your_table;
  • 逻辑说明:
    1. REVERSE(string_column) 反转原字符串,把最后一个下划线转为第一个出现的下划线
    2. INSTR(...) 找到反转后第一个下划线的位置
    3. SUBSTR(..., 位置+1) 截取反转字符串中第一个下划线之后的部分(对应原字符串最后一个下划线之前内容的反转)
    4. 再次REVERSE还原为原字符串最后一个下划线前的内容

示例验证

对于输入string_variable和string_variable_two,两种方法都会输出:

  • string
  • string_variable

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:30:46