如何在句子中搜索一个单词,但如果它是';这是python中另一个单词的一部分

如何在句子中搜索一个单词,但如果它是';这是python中另一个单词的一部分,python,search,Python,Search,因此,我的一个朋友构建了一个CPPS(club penguin private server),并用python为其构建了一个Sware过滤器,但要求我查看一下,因为它需要更新。然而,我发现他输入了一些类似FAK的选项,这意味着当你输入FAKE时,它会因为你骂人而踢你一脚。我怎样才能只搜索这个词,如果它是另一个词的一部分,就忽略它,或者我需要添加一个多余的要忽略的词列表? (请注意,下面看到的代码是我认为您需要的,但其中一些代码是用于连接数据库或客户端的,因此需要进行必要的返工,我只需要一行代码

因此,我的一个朋友构建了一个CPPS(club penguin private server),并用python为其构建了一个Sware过滤器,但要求我查看一下,因为它需要更新。然而,我发现他输入了一些类似FAK的选项,这意味着当你输入FAKE时,它会因为你骂人而踢你一脚。我怎样才能只搜索这个词,如果它是另一个词的一部分,就忽略它,或者我需要添加一个多余的要忽略的词列表? (请注意,下面看到的代码是我认为您需要的,但其中一些代码是用于连接数据库或客户端的,因此需要进行必要的返工,我只需要一行代码来忽略fake,或者确保它只是屏幕上的单词,而不是另一个单词的一部分) 谢谢

到目前为止,我所能做的最好的事情就是从他的数据库中完全删除FAK,但这只会让人们对他们所说的话感到愤怒

@Handlers.Throttle(0.5)
def handleSendMessage(self, data):
    if data.Id != self.user.ID:
        return self.transport.loseConnection()
badWords = ["fak"]

    for badWord in badWords:
        badWord = badWord.upper()
        if badWord in data.Message.upper():
            return self.server.players[self.user.ID].sendErrorAndDisconnect(800)
    self.room.sendXt("sm", self.user.ID, data.Message)

我希望在他的CPP上启动该代码时,能够检测出此人所说的话是否真的是脏话,或者他们所说的话是否含有该单词的字母。

只需检查单词前一个字符和单词后一个字符是否为空格。您应该尝试一些NLP库。这些需求通常通过ML模型来处理!?你有没有试过在坏话的两边加一个空白字符?
import re

pattern = '|'.join(fr'\b{word}\b' for word in badwords)
if re.search(pattern, data.Message.casefold()):
    return self.server.players[self.user.ID].sendErrorAndDisconnect(800)