2011-09-29 120 views
1

我已经通过自带的内置Python的re模块上的一些文档阅读,但我似乎无法得到它的把握。事实上,我并不确定这是我在找什么,所以让我解释一下:正则表达式?搜索引擎?

我有一个巨大的字典。我想要的是能够输入搜索标准,比如说hello,然后让它搜索字典并给我一个像这样的列表:

hello, hell, hello world, hello123。基本上任何类似于搜索标准的东西。我会用这个或其他东西的正则表达式?

+9

定义 “类似”。 –

+4

定义“巨大”。 –

+1

一切不过'hell'简直是'str.startswith',但你应该告诉更多关于'hell'的事情,即什么是那种比赛的标准。 – dmedvinsky

回答

2

既然你使用的是Python,你应该看看Xapian,它有很好的Python绑定。

你所要求的是什么方式更为复杂的是什么样的正则表达式是。

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

2

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

你可能不想走“从头开始”的路线,但文章会给你很多有趣的背景,应该可以帮助你决定哪个工具适合你。 Xapian,如上所述,Lucene和其他全文搜索引擎将提供这种功能,并且它可能非常复杂,但是您可能不需要所有这些。