2010-06-09 17 views

回答

0

正則表達式可以在這裏工作;數據似乎以簡單的「詞彙[kana]/definition /」格式返回,其中定義也可以包含斜槓。你應該知道某些條目會忽略「[kana]」(例如,嘗試搜索ハンバーグ)。

此外,您應該知道WWWJDIC使用的原始字典文件也可以從這裏下載:http://www.csse.monash.edu.au/~jwb/edict.html。滿足您的需求更好地

0

您的問題可以用正則表達式來解決這個可能的解決方案迭代entries產生散列的數組:。

dictionary = entries.map do |entry| 
    entry.scan(/(.*) \[(.*)\] \/(.*)\//).map do |(headword, kana, definition)| 
    { headword: headword, kana: kana, definition: definition } 
    end 
end 

這是相當簡單:掃描三段的每個條目以標準格式,並映射這些匹配通過將數組中的變量提取爲新名稱將其轉換爲哈希值。如果有比這更簡單或更清晰的方法來解決問題,那麼你應該使用它,但否則我推薦這樣的東西。

注意:由於在數據中使用了外部編碼,所以這可能無法工作,除非您更改正則表達式引擎的編碼。