【发布时间】:2022-01-10 05:47:45
【问题描述】:
我正在使用 discord.py 库构建一个 Discord 机器人。该库使用on_message(ctx) 事件让我们根据需要修改消息。我想做的是删除格式并将用户提及的内容替换为 Discord 名称。消息的文本如下所示:
<@!34565734654367046435> <@!34565734645354367046435> are you here?
在ctx 变量中,我可以从ctx.mentions 中获得User 对象的提及,并且我可以获得每个提及用户的NAME 和ID .
我想将<@!34565734654367046435> 替换为用户名。结果是这样的:
Name1 Name2 are you here?
这是我目前所拥有的,但它似乎不起作用。
remove_formatting = utils.remove_markdown(context.content)
print(remove_formatting) # prints the very first code styled line in this question
for member in context.mentions:
remove_formatting.replace(f'<@!{member.id}>', member.name)
如果我打印member.id 和member.name 而不做任何其他事情,我会得到预期值。如何更新这个 for 循环中的字符串?
【问题讨论】:
-
你得到的实际结果是什么?在进行替换之前,您是否打印了
remove_formatting以确保它符合您的预期? -
是的,它是第一个代码样式行: 你在这里吗?
标签: python string discord discord.py