Python如何按指定分隔符拆分字符串并保留分隔符本身
按指定分隔符拆分字符串且保留分隔符的实现方案
现有测试字符串为 s = "A56-3#AJ4klAP0W",目标以字符A为分隔符拆分,每个拆分结果保留前缀A。
方法1:基于已获取的分隔符索引列表处理
你已经拿到所有A对应的索引列表 index_list = [0, 6, 11],只需按相邻索引切片即可得到结果:
s = "A56-3#AJ4klAP0W" index_list = [0, 6, 11] res = [] for i in range(len(index_list)): # 除最后一个索引外,取当前索引到下一个索引的子串 if i < len(index_list) - 1: res.append(s[index_list[i]:index_list[i+1]]) # 最后一个索引直接取到字符串末尾 else: res.append(s[index_list[i]:]) print(res) # 输出:['A56-3#', 'AJ4kl', 'AP0W']
方法2:正则零宽断言一键实现
不用提前计算分隔符索引,用re.split结合正向肯定预查匹配分隔符前的位置拆分,自动保留分隔符:
import re s = "A56-3#AJ4klAP0W" # (?=A) 匹配字符A前方的零宽位置,拆分后A会保留在后续子串的开头 res = [item for item in re.split(r'(?=A)', s) if item] print(res) # 输出:['A56-3#', 'AJ4kl', 'AP0W']
内容的提问来源于stack exchange,提问作者Cara
相关产品推荐
相关产品推荐

