一次在流中搜索多个字符串而不执行“text1”、“text2”或“text3”

2024-10-01 19:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

这就是我现在拥有的,我只是想让它看起来更整洁,而不是寻找我能想到的日本的每一个变种。谢谢你的帮助


Tags: or方法字符串re列表searchifcomment
2条回答

如果你喜欢它的样子,你可以通过列表理解来完成

search_terms = ["japan", "japanese", "nihon", "nippon"]
if any([x in str(comment.body).lower() for x in search_terms]):
    return True

当然,只要把搜索词放在一个列表中并使用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)

相关问题 更多 >

    热门问题