我已經得到了一些字: hello, poison, world, search, echo ...
我已經得到了一些信件e, h, o
現在我需要找到一個包括該字母的所有單詞。像search, echo
爲e, h, o
正則表達式:如果三個字母都包含
我可以搜索這種方式:
words = %w[hello poison world search echo]
matched = words.select do |w|
%w[e,h,o].all?{ |l| w =~ /#{l}/ }
end
的問題是,如果字母是o, o, o
,或l, b, l
這個搜索將像open
或boil
話返回true,但我需要搜索詞包括的o
三個或兩個的l
和一個b
UPD:
leters = "abc"
words.select{ |w| w.count(letters) >= 3 }
UPD 2
壞的解決方案,例如:
"lllllll".count("lua") #=> 5
多少個字如果要在一個良好的性能?整個字典,該解決方案將是不同的。 – 2010-12-20 14:06:55
多大的文字嗎?而且你會需要對其運行幾個3個字母集? – 2010-12-20 14:07:03
約500-1000字(它是數組,acctually),而我也跑幾設置(每次20-30) – fl00r 2010-12-20 14:20:12