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

Python Discord Bot如何实现单条回复同时替换消息中多个指定单词

你现有代码的问题主要有两点:

  • 每匹配到一个关键词就单独发送一次消息,有多少个匹配到的词就会发多少条仅替换单个词的消息
  • 每次替换操作都是基于原始消息内容执行,不会叠加之前的替换结果,就算合并发送也无法实现多词同时替换

建议将替换规则调整为字典结构,映射关系更清晰,修改后的代码如下:

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    # 替换规则:键为待替换原词,值为替换后内容,后续新增规则直接在这里添加即可
    replace_map = {
        'test': 'nice',
        'winter': 'summer'
    }

    replaced_content = message.content
    # 依次完成所有替换操作
    for old_word, new_word in replace_map.items():
        replaced_content = replaced_content.replace(old_word, new_word)
    
    # 仅当内容有修改时才发送回复,避免无匹配词时发送重复内容
    if replaced_content != message.content:
        await message.channel.send(replaced_content)

    await client.process_commands(message)

以上代码会先完成全部指定词的替换,再统一发送一条最终修改后的消息,即可实现单条回复同时替换多个指定词的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:15:03