一次搜索流中的多个字符串,而无需执行“ text1”或“ text2”或“ text3”或

时间:2018-10-01 17:28:04

标签: python string bots

我想知道python中是否有一种方法可以一次在流中搜索多个字符串而不会将它们全部塞入一行。我可以将它们放在某种列表中,并用长行“或”代替吗?

if re.search("japan" or "japanese" or "nihon" or "nippon", str(comment.body).lower(), re.IGNORECASE):
      return True

这就是我现在所拥有的,我只是为了使其看起来更整洁,而不是寻找我能想到的日本的每个变化。谢谢你的帮助!

2 个答案:

答案 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)