查找字符串中子字符串的最后出现并替换

108 投票
7 回答
145465 浏览
提问于 2025-04-17 13:30

我有一长串格式相同的字符串,我想在每个字符串中找到最后一个“.”字符,并把它替换成“. - ”。我试过用rfind这个方法,但好像没能正确使用它来完成这个任务。

7 个回答

15

我会使用正则表达式:

import re
new_list = [re.sub(r"\.(?=[^.]*$)", r". - ", s) for s in old_list]
28

从右边进行替换:

def replace_right(source, target, replacement, replacements=None):
    return replacement.join(source.rsplit(target, replacements))

使用示例:

>>> replace_right("asd.asd.asd.", ".", ". -", 1)
'asd.asd.asd. -'
168

这样就可以了

old_string = "this is going to have a full stop. some written sstuff!"
k = old_string.rfind(".")
new_string = old_string[:k] + ". - " + old_string[k+1:]

撰写回答