讲述两大块文本之间的区别

时间:2010-10-05 15:36:21

标签: c# .net vb.net algorithm

比较大段文字以区分差异的最佳方法是什么?例如,字符串A和字符串B是相同的,除了少数缺失的单词,我将如何突出显示这些?

最初我想把它分解成单词数组,然后比较元素。但是,当删除或插入单词时,这会中断。

6 个答案:

答案 0 :(得分:3)

使用diff algorithm

答案 1 :(得分:1)

几个月前我在一个小项目上工作时看到了这个,但它可能会让你走上正轨。

http://www.codeproject.com/KB/recipes/DiffAlgorithmCS.aspx

答案 2 :(得分:0)

您希望查看最长公共子序列算法。大多数语言都有一个库可以为你做脏工作,而here是一个用于C#的文库。搜索“C#diff”或“VB.Net diff”将帮助您找到适合您需求的其他库。

答案 3 :(得分:0)

通常,文本差异是以edit distance来衡量的,这基本上是将一个文本转换为另一个文本所需的字符添加,删除或更改的数量

此算法的常见实现使用dynamic programming

答案 4 :(得分:0)

以下是合并引擎的一个实现,它可以比较2个html文件并显示突出显示的差异:http://www.codeproject.com/KB/string/htmltextcompare.aspx

答案 5 :(得分:0)

如果是一次性交易,请将它们保存在MS Word中并使用文档比较功能。