【问题标题】:Search in text using multiple words with AND OR operators使用 AND OR 运算符使用多个单词在文本中搜索
【发布时间】:2017-11-25 00:40:13
【问题描述】:

考虑一下这个草稿文本段落:

Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Phasellus iaculis imperdiet hendrerit。 Aliquam vitae eleifend ex。 Aenean molestie mi vel mauris blandit sagittis。 Cras dictum ac nibh nec malesuada。 Fusce dolor ex, vulputate id ipsum eget, varius condimentum lectus。 Fusce accumsan nisl eget tincidunt elementum。 Suspendisse eu pellentesque odio。

我想检查此文本是否包含单词 ('Lorem' AND 'ipsum') OR 'dolor'

我如何在 Python 中做到这一点?

用例: 查询被保存到数据库中,因此,用户可以在管理区域中删除、添加或编辑查询。

【问题讨论】:

  • 提示:可以使用in操作符
  • @EricFinn 我正在考虑将其保存在 SQLite 数据库中并对其进行查询。
  • 具体用例是什么?它是否需要处理任何查询和任何文本?我个人会这样做:``` tokens = set(text.split()) answer = ('lorem' in tokens and 'ipsum' tokens) or 'dolor' in tokens ```
  • 如果文本有“dolors”,这是否应该被视为匹配? “多洛尔”呢?请澄清您所说的“单词”是什么意思。
  • @RoryDaulton 用户输入需要检查的查询,例如('Lorem' AND 'ipsum') OR 'dolor'

标签: python


【解决方案1】:
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus iaculis imperdiet hendrerit. Aliquam vitae eleifend ex. Aenean molestie mi vel mauris blandit sagittis. Cras dictum ac nibh nec malesuada. Fusce dolor ex, vulputate id ipsum eget, varius condimentum lectus. Fusce accumsan nisl eget tincidunt elementum. Suspendisse eu pellentesque odio."

result = ('Lorem' in text and 'ipsum' in text) or 'dolor' in text
print(result)

输出:

True

【讨论】:

【解决方案2】:
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus iaculis imperdiet hendrerit. Aliquam vitae eleifend ex. Aenean molestie mi vel mauris blandit sagittis. Cras dictum ac nibh nec malesuada. Fusce dolor ex, vulputate id ipsum eget, varius condimentum lectus. Fusce accumsan nisl eget tincidunt elementum. Suspendisse eu pellentesque odio."

word_lists = [['Lorem', 'ipsum'], ['dolor']]
result = any(all(w in text for w in word_list) for word_list in word_lists)
print result

是的

如果您需要添加更多条件,可以将元素添加到 word_lists。

【讨论】:

    【解决方案3】:

    @拉桑巴兹

    import re
    
    r = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus iaculis imperdiet hendrerit. Aliquam vitae eleifend ex. Aenean molestie mi vel mauris blandit sagittis. Cras dictum ac nibh nec malesuada. Fusce dolor ex, vulputate id ipsum eget, varius condimentum lectus. Fusce accumsan nisl eget tincidunt elementum. Suspendisse eu pellentesque odio."
    
    if re.search('Lorem' and 'ipsum',r) or re.search('dolor',r):
        print 'Exists'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2022-11-13
      相关资源
      最近更新 更多