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

Python3:实现字符串子串替换为多词汇并生成全部结果的问题

解决替换单词生成所有对应字符串的问题

你写的代码里,字典的键全是disease,但字典的键具有唯一性,后面的键值对会直接覆盖前面的,最终字典里只会保留最后一组'disease':'syndromes',所以函数只会返回这一个替换结果。

修正后的实现方案

不需要用字典传递替换规则,直接传入目标替换词和替换候选列表,遍历每个候选词完成替换并收集所有结果:

import re

def multiple_replace(string, target_word, replacements):
    # 编译正则,确保匹配独立的目标单词(避免部分匹配)
    pattern = re.compile(r'\b' + re.escape(target_word) + r'\b', flags=re.DOTALL)
    # 遍历每个替换词,生成对应的字符串并收集
    return [pattern.sub(repl, string) for repl in replacements]

# 使用示例
outputs = multiple_replace(
    "lysosome storage disease",
    "disease",
    ["disease", "diseases", "disorder", "disorders", "syndrome", "syndromes"]
)

# 输出所有结果
for s in outputs:
    print(s)

如果不需要严格匹配独立单词(比如允许替换长单词中的子串),可以把正则简化为pattern = re.compile(re.escape(target_word), flags=re.DOTALL)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:10:35