我正在寻找一个不同的算法,将产生像这样的编辑修订页面的结果。我或多或少刚刚开始寻找,我并不反对自己去做,但我不需要重新发明轮子。
我将使用C# 4.0。我基本上有两个字符串,一个旧的,一个新的。我想通过突出显示和删除来了解新版本中发生了什么变化。
发布于 2017-06-15 20:27:55
我发现谷歌已经发布了做diff,match和patch的代码,其中包含c#类和测试代码。代码并不是很难使用IMHO。
https://github.com/google/diff-match-patch
这里有很好的文档:
发布于 2010-09-22 04:31:34
它基于通常称为LCS的Longest common subsequence算法。
旧文本和新文本的LCS给出了保持不变的部分。因此,旧文本中不属于LCS的部分就是被更改的部分。
从上面的wiki页面:
这是一个经典的计算机科学问题,是diff (输出两个文件之间的差异的文件比较程序)的基础,并且在生物信息学中有应用程序。
发布于 2010-09-22 05:12:02
您可以查看用C#编写的示例的Menees Diff。
https://stackoverflow.com/questions/3764107
复制相似问题