这是我当前的代码:
if any(word in message.content.lower() for word in bannedWords):
await message.delete()
await message.channel.send(f"{messageAuthor.mention} your message has been removed as it contains a banned word.")
我遇到的问题是它也禁止包含被禁止单词的单词,例如,如果我禁止单词test,则测试也被禁止,因为它包含单词test。任何人都有如何解决这个问题的想法吗?
答案 0 :(得分:2)
正则表达式可以解救。这样的事情怎么样:
import re
def msg_contains_word(msg, word):
return re.search(fr'\b({word})\b', msg) is not None
如果单词作为单独的单词出现(\b
是单词边界),则此函数返回true。只需使用它代替any