2011-09-29 121 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和其他全文搜索引擎將提供這種功能,並且它可能非常複雜,但是您可能不需要所有這些。