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

PostgreSQL如何移除拆分字符串的最后两部分?

解决方案:移除点分隔字符串的最后两部分

针对你遇到的字符串处理需求,这里提供两种在PostgreSQL中可行的方法,无需关心原字符串拆分后的总段数:

方法1:反转字符串+拆分函数组合

通过反转字符串把最后两段移到开头,截取掉前两段后再反转回来:

SELECT 
    REVERSE(SPLIT_PART(REVERSE(id), '.', 3)) AS processed_id
FROM your_table;

原理说明:

  1. REVERSE(id):将原字符串反转,比如AB.X.LEFT.01会变成10.TFEL.X.BA
  2. SPLIT_PART(REVERSE(id), '.', 3):按.拆分反转后的字符串,从第3个部分开始取所有内容,得到X.BA
  3. 再次执行REVERSE就得到最终结果AB.X

方法2:正则表达式替换

用正则匹配并替换掉末尾的两个点分隔段:

SELECT 
    REGEXP_REPLACE(id, '\.[^.]+\.[^.]+$', '') AS processed_id
FROM your_table;

正则说明:

  • \.[^.]+\.[^.]+$:专门匹配字符串末尾的两个点分隔段:
    • \.[^.]+:匹配一个.加上任意非.字符(即一段独立内容)
    • 重复两次即可锁定最后两段,$限定只匹配字符串结尾部分
  • 将匹配到的内容替换为空,就保留了除最后两段外的所有内容

两种方法都能完美处理你提供的所有测试用例,输出符合预期的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:55:18