如何在Python列表中查找regexp模式?
我有一个坏词的清单。比如说:如何在Python列表中查找regexp模式?,python,regex,list,Python,Regex,List,我有一个坏词的清单。比如说: BAD_WORDS = ['bw1', 'bw2',...] 现在我想知道在如下代码中检查长字符串(也称为django请求帖子)最有效的方法是什么: if re.search(comment.body) in BAD_WORDS: dosomething; 最好的方法是用一种表达方式来表达所有的坏话: import re bad_words = ['bw1', 'bw2', ... ] my_expression = '|'.
BAD_WORDS = ['bw1', 'bw2',...]
现在我想知道在如下代码中检查长字符串(也称为django请求帖子)最有效的方法是什么:
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()
最好的方法是用一种表达方式来表达所有的坏话:
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()
最好的方法是用一种表达方式来表达所有的坏话:
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()
最好的方法是用一种表达方式来表达所有的坏话:
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()
您可以为此使用
任何
要仅匹配子字符串非精确单词,可以使用
中的:
if any(word in comment.body for word in BAD_WORDS):
#do something
要匹配精确的单词,请使用正则表达式regex
:
import re
if any(re.search(r'\b{}\b'.format(re.escape(word)), comment.body)
for word in BAD_WORDS):
#do something
您可以为此使用任何
要仅匹配子字符串非精确单词,可以使用
中的:
if any(word in comment.body for word in BAD_WORDS):
#do something
要匹配精确的单词,请使用正则表达式regex
:
import re
if any(re.search(r'\b{}\b'.format(re.escape(word)), comment.body)
for word in BAD_WORDS):
#do something
您可以为此使用任何
要仅匹配子字符串非精确单词,可以使用
中的:
if any(word in comment.body for word in BAD_WORDS):
#do something
要匹配精确的单词,请使用正则表达式regex
:
import re
if any(re.search(r'\b{}\b'.format(re.escape(word)), comment.body)
for word in BAD_WORDS):
#do something
您可以为此使用任何
要仅匹配子字符串非精确单词,可以使用
中的:
if any(word in comment.body for word in BAD_WORDS):
#do something
要匹配精确的单词,请使用正则表达式regex
:
import re
if any(re.search(r'\b{}\b'.format(re.escape(word)), comment.body)
for word in BAD_WORDS):
#do something
回答很好,但是,我会将flags=re.IGNORECASE
传递到re.search中,以说明案例不敏感。@Rishi我认为这必须由实现者决定,而不是由回答者建议。这可能是因为ass
是一部经过审查的作品,但是ass
是多愁善感的智者协会等等。@Rishi我应该如何添加这个标志?@supermariore.search(我的表达式,comment.body,flags=re.IGNORECASE)
答案不错,我会将flags=re.IGNORECASE
传递到re.search中,以说明大小写不敏感。@Rishi我认为这必须由实现者决定,而不是由回答者建议。这可能是因为ass
是一部经过审查的作品,但是ass
是多愁善感的智者协会等等。@Rishi我应该如何添加这个标志?@supermariore.search(我的表达式,comment.body,flags=re.IGNORECASE)
答案不错,我会将flags=re.IGNORECASE
传递到re.search中,以说明大小写不敏感。@Rishi我认为这必须由实现者决定,而不是由回答者建议。这可能是因为ass
是一部经过审查的作品,但是ass
是多愁善感的智者协会等等。@Rishi我应该如何添加这个标志?@supermariore.search(我的表达式,comment.body,flags=re.IGNORECASE)
答案不错,我会将flags=re.IGNORECASE
传递到re.search中,以说明大小写不敏感。@Rishi我认为这必须由实现者决定,而不是由回答者建议。可能是ass
是经过审查的作品,但ass
是多愁善感的智者协会等。@Rishi我应该如何添加标志?@supermariore.search(我的表达式,comment.body,flags=re.IGNORECASE)