【问题标题】:Regex? Search Engine?正则表达式?搜索引擎?
【发布时间】:2011-09-29 20:05:56
【问题描述】:

我已经阅读了一些关于内置 python 的 re 模块的文档,但我似乎无法掌握它。事实上,我不确定这就是我要找的东西,所以让我解释一下:

我有一本大字典。我想要的是能够输入搜索条件,例如hello,然后让它在字典中搜索并给我一个这样的列表:

hello, hell, hello world, hello123。基本上任何类似于搜索条件的东西。我会为此使用正则表达式还是其他什么?

【问题讨论】:

  • 定义“相似”。
  • hell 之外的所有内容都只是str.startswith,但您应该更多地了解hell 的内容,即此类匹配的标准是什么。
  • 这本特定词典有数千个条目,类似于...好吧,例如,当您输入与您在 google 中查找的内容接近的内容时。 20 次中有 19 次它会找出您要查找的内容并进行搜索。

标签: python regex search


【解决方案1】:

由于您使用的是 Python,您应该查看Xapian,它有很好的 Python 绑定。

您所要求的比正则表达式更复杂。

您需要全文搜索,使用词干提取和其他技巧来进行模糊匹配。

【讨论】:

    【解决方案2】:

    您可能想查看可以计算 Levenshtein(编辑)距离的东西。有一个 excellent article here 关于如何从头开始构建您所说的东西(在 Python 中!好吧,它已被移植到许多其他语言)。

    您可能不想走“从头开始”的路线,但本文将为您提供许多有趣的背景知识,帮助您确定哪种工具适合您的复杂程度。如上所述,Xapian、Lucene 和其他全文搜索引擎将提供这种功能,而且它可能非常复杂,但是您可能并不需要所有这些。

    【讨论】:

      【解决方案3】:

      PyPI 存储库中有 a new regexp module(有时可能会替换当前的 Python re 模块)。

      它允许模糊匹配。

      【讨论】:

        猜你喜欢
        • 2015-11-27
        • 1970-01-01
        • 2012-06-22
        • 1970-01-01
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多