6
我想要製作一個Ruby程序來計算兩個字母一起出現的次數。這是寫我讀的文件中:計算兩個字母一起出現的次數
hola
chau
而這正是我試圖讓:
ho;ol;la;ch;ha;au;
1;1;1;1;1;1;
我不能讓它正常工作。這是到目前爲止我的代碼:
file = File.read(gets.chomp)
todo = file.scan(/[a-z][a-z]/).each_with_object(Hash.new(0)) {
|a, b| b[a] += 1
}
keys = ''
values = ''
todo.each_key {
|key| keys += key + ';'
}
todo.each_value {
|value| values += value.to_s + ';'
}
puts keys
puts values
這是我得到的結果:
ho;la;ch;au;
1;1;1;1;
爲什麼我沒有得到角色的每個組合?我應該給我的正則表達式添加什麼,以便計算每個字符組合?
非常具有啓發性,Avinash。我以前沒有在lookaround組中看過捕獲組。很強大。 – 2014-09-01 16:14:03
你可以使用積極的後顧之談'(?<=([a-z] [a-z]))',你在你刪除的評論中暗示了這一點。我認爲這值得一提。 – 2014-09-01 18:59:00