如何删除子字符串中除第一个以外的所有子字符串

2024-04-28 02:13:38 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个字符串text和一个适当的子字符串query。如何删除除第一个查询外的所有查询?你知道吗

示例:

text = 'cccsumoxxxsumoppqqsumovvvvsumo' 
query = 'sumo' 

result: 'cccsumoxxxppqqvvvv'

Tags: 字符串text示例resultquerysumocccsumoxxxsumoppqqsumovvvvsumocccsumoxxxppqqvvvv
3条回答

请注意,replace()可以指定最大计数,因此您可以使用一些技巧来利用它:

text[::-1].replace(query[::-1], '', text.count(query)-1)[::-1]

更简单的方法是:

''.join(text.rsplit(query, text.count(query) - 1))

这种反向拆分text找到query的地方(从而删除它),除了最后出现的地方(因此-1),然后连接所有拆分的片段。你知道吗

我会用str.partition

def f(text, qry):
    pre, sep, suf = text.partition(qry)
    return pre + sep + suf.replace(qry, '')

这将透明地处理查询字符串可能存在或不存在的情况,并对字符串进行最低限度的必要处理(不计算查询字符串或切片等)

相关问题 更多 >