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