如何使用" in“来测试输入中是否包含单词?例如:您将编写一个脚本来测试用户输入是否包含冒犯的含义或声明。当你有一个“不好的词”时,它会自动被删除。
发布于 2018-07-17 06:53:38
假设您已经将输入放入一个字符串变量中。让我们将此输入称为"user_input":
user_input
for word in bad_words_list:
if re.search("\b"+word+"\b", user_input, flags=re.IGNORECASE):
ban_user()
"re“是正则表达式的Python模块。只有在找到表达式时,re.search()才会计算为true。
我们添加"flags=re.IGNORECASE“来确保我们的搜索是不区分大小写的。这样,用户就不能通过更改大小写来绕过过滤器。
我们将"\b“转义字符添加到正则表达式的原因是强制它只查看整个单词。
例如,如果我想禁用单词"cars“,如果我没有添加"\b”字符,则将匹配以下内容:
“我想开一辆车”
“我想去Carson街。”
但是,一旦我们添加了"\b“字符(创建字符串"\bcars\b"),那么将只匹配”我想驾驶一辆汽车“,而不匹配”我想去卡森街“。
实际上,ban_user()可以是任何语句;它只是在找到单词后执行的语句。如果您只想审查单词,我将让您自行解决如何替换Python中的字符串:)
https://stackoverflow.com/questions/51370979
复制相似问题