2024-05-15 22:57:12 发布
网友
我有一个坏词清单。假设是:
BAD_WORDS = ['bw1', 'bw2',...]
现在我想知道在如下代码中检查长字符串(又称django请求post)最有效的方法是什么:
if re.search(comment.body) in BAD_WORDS: dosomething;
最好的方法是用一种表达方式来表达所有的坏话:
import re bad_words = ['bw1', 'bw2', ... ] my_expression = '|'.join(re.escape(word) for word in bad_words) if re.search(my_expression, comment.body): do_something()
你可以用any来做这个。你知道吗
any
要仅匹配子字符串而不是精确的单词,可以使用in运算符:
in
if any(word in comment.body for word in BAD_WORDS): #do something
要匹配精确的单词,请使用regex:
regex
import re if any(re.search(r'\b{}\b'.format(re.escape(word)), comment.body) for word in BAD_WORDS): #do something
最好的方法是用一种表达方式来表达所有的坏话:
你可以用
any
来做这个。你知道吗要仅匹配子字符串而不是精确的单词,可以使用
in
运算符:要匹配精确的单词,请使用
regex
:相关问题 更多 >
编程相关推荐