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

Excel技术问题:如何提取字符倒数第二次出现左侧的全部内容

提取指定字符倒数第二次出现位置左侧内容的方法(以“-”为例)

核心思路

把字符串按目标字符“-”分割成数组,取数组的前 数组长度-2 个元素,再用“-”拼接回字符串,就能得到倒数第二次“-”左侧的所有内容。

具体实现示例

Python 实现

def get_left_before_second_last_dash(s):
    parts = s.split('-')
    if len(parts) < 2:  # 处理不足2个“-”的情况
        return s
    return '-'.join(parts[:-2])

# 测试示例
print(get_left_before_second_last_dash("hello-baby-123-sun"))  # 输出: hello-baby
print(get_left_before_second_last_dash("hello-baby-123-sun-shine-123"))  # 输出: hello-baby-123-sun

JavaScript 实现

function getLeftBeforeSecondLastDash(str) {
    const parts = str.split('-');
    if (parts.length < 2) {
        return str;
    }
    return parts.slice(0, -2).join('-');
}

// 测试示例
console.log(getLeftBeforeSecondLastDash("hello-baby-123-sun")); // 输出: hello-baby
console.log(getLeftBeforeSecondLastDash("hello-baby-123-sun-shine-123")); // 输出: hello-baby-123-sun

Bash 实现

get_left_before_second_last_dash() {
    local s="$1"
    local parts=(${s//-/ })
    local len=${#parts[@]}
    if [ $len -lt 2 ]; then
        echo "$s"
        return
    fi
    local result=""
    for ((i=0; i<len-2; i++)); do
        result+="${parts[i]}"
        if [ $i -ne $((len-3)) ]; then
            result+="-"
        fi
    done
    echo "$result"
}

# 测试示例
get_left_before_second_last_dash "hello-baby-123-sun"  # 输出: hello-baby
get_left_before_second_last_dash "hello-baby-123-sun-shine-123"  # 输出: hello-baby-123-sun

特殊情况处理

如果字符串中“-”出现次数不足2次,直接返回原字符串即可(比如输入“hello-world”或“hello”,均返回原内容)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:12:39