亵渎过滤器阻止意外单词py

时间:2020-09-12 23:09:14

标签: python python-3.x discord discord.py discord.py-rewrite

这是我当前的代码:

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。任何人都有如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:2)

正则表达式可以解救。这样的事情怎么样:

import re

def msg_contains_word(msg, word):
    return re.search(fr'\b({word})\b', msg) is not None

如果单词作为单独的单词出现(\b是单词边界),则此函数返回true。只需使用它代替any

中的检查