2010-08-01 25 views
0
require 'rubygems' 
require 'differ' 

original = "Epic lolcat fail bellmead drive!" 
current = "Epic wolfman fail bellmead dr!" 

diff = Differ.diff_by_word(current, original).to_s 

puts diff # => "Epic {"lolcat" >> "wolfman"} fail bellmead {"drive" >> "dr"}! 

diff =~ /(\{"[a-zA-Z0-9]*" >> "[a-zA-Z0-9s]*"\})/ 

puts "#{$1} to #{$2} #{$3} to #{$4}" 
# => lolcat to wolfman to 

# Desired output: lolcat to wolfman to drive to dr 

回答

1

我不知道「不同」,但如何:

require 'rubygems' 
require 'differ' 

original = "Epic lolcat fail bellmead drive!" 
current = "Epic wolfman fail bellmead dr!" 

diff = Differ.diff_by_word(current, original).to_s 

puts diff # => "Epic {"lolcat" >> "wolfman"} fail bellmead {"drive" >> "dr"}! 

captures = diff.scan /\{"([a-zA-Z0-9]*)" >> "([a-zA-Z0-9s]*)"\}/ 

captures.each {|c| puts "#{c[0]} to #{c[1]}" } 
+0

嗯...掃描數組傳遞回來沒有它。確實如此。謝謝阿德里安。 – johnnygoodman 2010-08-03 03:59:38

相關問題