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

分隔符连续出现两次时如何拆分字符串并保留其中一个分隔符

解决方案

方法1:分割后遍历处理(无需引入依赖)

你第一次用+分割得到的结果已经包含足够信息,空字符串的位置就对应需要保留的+,遍历处理即可:

s = 'apple/SP++/SW+orange/NNG++/FG+melon/SL+food/JKG'
split_list = s.split('+')
result = []
index = 0
length = len(split_list)

while index < length:
    current = split_list[index]
    # 空元素代表当前位置需要保留加号作为元组第一个元素
    if not current:
        index += 1
        # 去除路径开头的斜杠后拆分
        _, tag = split_list[index].lstrip('/').split('/')
        result.append(('+', tag))
    else:
        word, tag = current.split('/')
        result.append((word, tag))
    index += 1

print(result)
# 输出:[('apple', 'SP'), ('+', 'SW'), ('orange', 'NNG'), ('+', 'FG'), ('melon', 'SL'), ('food', 'JKG')]

方法2:正则匹配(代码更简洁)

直接用正则表达式匹配所有符合规则的元组项,匹配规则为:第一个元素是+或纯单词字符,第二个元素是斜杠后的大写字母序列:

import re

s = 'apple/SP++/SW+orange/NNG++/FG+melon/SL+food/JKG'
result = re.findall(r'(\+|\w+)/([A-Z]+)', s)
print(result)
# 输出:[('apple', 'SP'), ('+', 'SW'), ('orange', 'NNG'), ('+', 'FG'), ('melon', 'SL'), ('food', 'JKG')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:24:02