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
相关产品推荐
相关产品推荐

