我希望能夠得到匹配一個非常簡單的約束的字典(文本文件)中的所有單詞。如何根據簡單約束在字典中找到單詞?
這裏是我想要達到的幾個例子:
- 對於字符串「ABCD」,查找所有的單詞,「a」和含「B」開頭,「c」和「d」的至少一個時間
- 對於字符串「BCCD」,尋找所有單詞以「b」開始,包含至少兩個「c」和至少一個「d」(「bydcuc」和「bicdzcd」是有效字)
字符串中的第一個字母總是應該開始的單詞,下列字母應該是b e包含至少它們出現在字符串中的次數。
例如,字符串「胸罩」可以返回「芭芭拉」,如能串「巴爾」或「柏拉」。
我的第一個想法是使用正則表達式,但我沒能說的字母可以按任意順序被發現。我不想用排列構建正則表達式。
我的第二個想法是通過所有的話環路與我的第一個字母開頭。對於每一個單詞,我會檢查它們是否包含正確的字母。但是,因爲我想要高效率,這似乎不太可以接受。
你有我如何能做到這一點的一個很好的和有效的方式什麼想法?
我已經習慣了蟒蛇,但我接受任何其他建議用於此目的。 (也許一個數據庫,而不是一個txt文件?)
感謝您的明確答案。這正是我在第二個想法中想到的(儘管我會對模式中的字母做一個foreach,而不是對這些字母中的字母進行分類)。但是對於一本非常大的字典,恐怕要花太多內存來加載完整的單詞列表。你認爲一個100MB的文件可以嗎? – mimipc
@mimipc,我建議你把你的文件分成'dict1.txt','dict2.txt','dict3.txt' ...等幾個文件。另外,我認爲更小的塊可以更好地適應內存。 – sshashank124
是的,我想分開它的第一個字母(a.txt,b.txt,...) – mimipc