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

如何从字符串末尾开始截取至第5个“-”的内容?

字符串截取方案:从末尾截取至第5个连字符位置

针对你的需求,这里提供几种简洁的实现方式,分常用编程语言举例:

Python 实现

方式一:分割重组(最简洁)

直接按-分割字符串,舍弃第一个分段,再将剩余部分用-拼接并在开头补一个-,正好得到目标结果:

s = "abc-8479fe75-82rb5-45g00-b563-a7346703098b"
result = '-' + '-'.join(s.split('-')[1:])

方式二:倒序遍历定位(通用场景)

如果需要兼容分隔符数量不确定的情况,可以从字符串末尾倒序遍历,计数找到第5个-的位置后截取:

s = "abc-8479fe75-82rb5-45g00-b563-a7346703098b"
dash_count = 0
target_pos = -1

for idx in range(len(s)-1, -1, -1):
    if s[idx] == '-':
        dash_count += 1
        if dash_count == 5:
            target_pos = idx
            break

result = s[target_pos:] if target_pos != -1 else ""

JavaScript 实现

方式一:分割重组

和Python思路一致,分割后截取后续部分再拼接:

const s = "abc-8479fe75-82rb5-45g00-b563-a7346703098b";
const result = '-' + s.split('-').slice(1).join('-');

方式二:倒序遍历定位

倒序遍历计数,找到目标位置后截取子串:

const s = "abc-8479fe75-82rb5-45g00-b563-a7346703098b";
let dashCount = 0;
let targetPos = -1;

for (let i = s.length - 1; i >= 0; i--) {
    if (s[i] === '-') {
        dashCount++;
        if (dashCount === 5) {
            targetPos = i;
            break;
        }
    }
}

const result = targetPos !== -1 ? s.slice(targetPos) : "";

核心逻辑都是找到从末尾数第5个-的位置,然后截取该位置到字符串末尾的部分。分割重组的方式适合已知字符串格式固定的场景,代码更简洁;倒序遍历则更通用,能处理分隔符数量不确定的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:35:15