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

Python中如何替换搜索字符串最后一次出现的指定内容

替换字符串最后一个逗号为&的Python实现

原代码问题说明

你写的正则r", \w$"会匹配字符串末尾的「逗号+空格+单个字符」整体,替换时把最后一个字符也一并替换掉了,所以才会丢失末尾的d。


1. 正则实现方案

使用正向预查匹配最后一个逗号的位置,不会消耗逗号后面的内容:

import re
mystring = "a, b, c, d"
# 正则匹配后面没有其他逗号的「逗号+空格」
result = re.sub(r', (?=[^,]*$)', ' & ', mystring)
print(result) # 输出:a, b, c & d

正则逻辑说明:(?=[^,]*$)是正向肯定预查,限定当前匹配的, 后面只能出现非逗号字符直到字符串结束,确保匹配到的是最后一个逗号加空格。


2. 非正则实现方案

用rsplit从字符串右侧分割一次,再拼接即可,逻辑更简单性能更高:

mystring = "a, b, c, d"
# 从右侧按`, `分割1次,拆分后用` & `拼接
result = ' & '.join(mystring.rsplit(', ', 1))
print(result) # 输出:a, b, c & d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:27:03