我想知道python中是否有一种方法可以一次在流中搜索多个字符串而不会将它们全部塞入一行。我可以将它们放在某种列表中,并用长行“或”代替吗?
if re.search("japan" or "japanese" or "nihon" or "nippon", str(comment.body).lower(), re.IGNORECASE):
return True
这就是我现在所拥有的,我只是为了使其看起来更整洁,而不是寻找我能想到的日本的每个变化。谢谢你的帮助!
答案 0 :(得分:1)
如果您更喜欢列表的外观,则可以通过列表理解来做到这一点
search_terms = ["japan", "japanese", "nihon", "nippon"]
if any([x in str(comment.body).lower() for x in search_terms]):
return True
答案 1 :(得分:0)
当然,只需将搜索词放在列表中,然后使用Python的in
运算符即可。
search_terms = []
search_terms.append('japan')
search_terms.append('japanese')
search_terms.append('nihon')
# etc
# OR
search_terms = ['japan', 'japanese', 'nihon', 'nippon']
for term in search_terms:
if term in comment.body.lower():
return True
顺便说一句,您可以使用any()
if any(term in comment.body.lower() for term in search_terms)