我正在使用Google diff-match-patch库。
假设我比较了这两个文件(在行 2 之前加上'Z')
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccccccccccccccccccccc
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Zbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccccccccccccccccccccc
生成的差异是:
@@ -50,16 +50,17 @@
aaaaaaa%0A
+Z
bbbbbbbb
问题是diff不包含所有行。 我想要那样的东西:
@@ -50,16 +50,17 @@
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%0A
+Z
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
如何使用diff_match_patch获取差异中的所有行?
答案 0 :(得分:1)
这显然是FAQ。将JS示例转录为Python会产生以下输出:
@@ -54,65 +54,66 @@
aaa%0A
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%0A
+Zbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%0A
cccc
哪个仍不理想,但略好一点。
答案 1 :(得分:0)
尝试使用python内置的difflib http://docs.python.org/library/difflib.html#difflib.ndiff