问题标签 [google-diff-match-patch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3531 浏览

javascript - 如何使 Google Diff Match Patch 更喜欢字符串末尾的更改?

我正在使用diff_mainGoogle 的 DiffMatchPatch 库的方法来获取差异,然后在我的应用程序中使用这些差异。考虑这种情况:

旧字符串:

新字符串:

我得到的附加差异是:

而对于人类消费而言,更合理的差异似乎是:

有什么办法可以让 DiffMatchPatch 产生第二个结果而不是第一个结果?

你可以在这里看到一个例子:https ://jsfiddle.net/puje78vL/1/

0 投票
1 回答
1200 浏览

javascript - 我无法使用来自 Google 的名为 diff_match_patch 的库来比较两个文本文件

我正在尝试使用来自 Google 的库(diff_match_patch以 HTML 和 Javascript 调用)来比较这两个文本文件。但我无法区分两个文本文件。我正在使用以下代码来比较文本。

请帮我解决这个问题。

0 投票
0 回答
888 浏览

c# - 解析 DiffPlex 结果

我想使用 DiffPlex 库来查找 2 个字符串之间的区别。我尝试过 Google Diff Match Patch,但结果很难解析,需要我一次查看字符。我让它工作了,但想知道它是否可以更容易地完成。

但是,如果字符串在每个短语之间有特定的分隔符,DiffPlex 似乎可以按单词甚至短语来完成。我能够调用该函数,但不知道如何解析结果。有没有办法查看结果中插入和删除的内容?这是我到目前为止所拥有的:

先感谢您!

0 投票
0 回答
121 浏览

c# - 如何在 C# 中使用谷歌差异?

我得到了这个工作,它比较两个字符串并写出插入、删除等,但它并不是真正可读的。我想得到类似的东西:

你能帮我吗,或者至少如何从这个开始?

0 投票
0 回答
98 浏览

java - 如何比较以下文件格式?

我必须比较每个文件中有 50K 记录的两个文件。记录在文本文件中,但格式如下:

文件格式

每行都有记录。

  1. 如果两个文件中的记录相同(逐行比较),那么我们必须找到相应记录的差异。
  2. 如果记录不同(在第 4 行检查),则将文本 file2 中的行增加一行并将 file2 的此记录打印为 file1 中未找到的新记录并递增直到找到 file1 中的记录,然后比较两者中的记录线。

我们是否可以比较这种格式的两个文件。

编辑

}

0 投票
1 回答
1849 浏览

google-diff-match-patch - Google diff-match-patch:如何取消补丁以获取原始字符串?

我正在使用 Google diff-match-patch JAVA 插件在两个 JSON 字符串之间创建补丁并将补丁存储到数据库中。

现在有什么方法可以通过传递来使用它patch来重新创建?originalStringlatestString

我对此进行了谷歌搜索,发现这条非常古老的评论@Google diff-match-patch Wiki说,

只需循环 diff,将 DIFF_INSERT 与 DIFF_DELETE 交换,然后应用补丁即可完成取消修补。

但我没有找到任何有用的代码来证明这一点。我怎样才能用我现有的代码实现这一点?任何指针或代码参考将不胜感激。

编辑:

我面临的问题是,在前端我显示了一个修订模块,该模块显示了特定片段的所有事务(例如员工详细信息),例如哪个用户更新了哪些详细信息等。现在我正在重新创建通过反向应用每个补丁来分段 JSON 以获取当前事务数据并将其显示为表格(使用http://marianoguerra.github.io/json.human.js/)。但是一些 JSON 数据不是有效的 JSON,我收到 JSON.parse 错误。

0 投票
1 回答
1316 浏览

python - 并排 html diff_match_patch

但是,如在示例中

http://agiliq.com/blog/2014/05/google-diff-match-patch-library/

我似乎无法让它在 HTML 文件中并排显示结果。我怎么可能解决这个问题?

0 投票
0 回答
778 浏览

java - Java:使用 Google-diff-match-patch 在句子中区分单词

我正在使用 google-diff-match-patch 比较 2 个字符串的差异。它在大多数情况下都可以正常工作,除非单词中的第一个字符相同。

例如:

输出:

期望的输出:

任何建议或是否有任何其他图书馆可以解决问题?提前致谢

0 投票
0 回答
227 浏览

java - google-diff-match-patch - 错误的单词差异

我有 2 个单词“50g”和“75g”,并使用 DiffMatchPatch 显示“5”和“g”是相同的。它假设只有“g”是相同的。

这个 url 你可以测试上面的单词,它显示了相同的结果。 https://neil.fraser.name/software/diff_match_patch/demos/diff.html

在此处输入图像描述

是错误还是我对此有错误的解释?

0 投票
2 回答
4126 浏览

javascript - HTML String 的比较 & 突出区别

问题陈述:两个输入字符串,其样式如 HTML 中的 strong、li、ol、line-through 等。在屏幕上,应该有两个框:原始文本和编辑文本。如果已编辑文本中缺少原始文本的任何文本,则应以红色突出显示该单词。如果他在已编辑文本中添加了任何不在原始文本中的内容,则应在已编辑文本中以黄色突出显示该文本

在此处输入图像描述

预期输出:在第一个框中,它应该以红色突出显示已删除的文本,在第二个框中,它应该以黄色突出显示已编辑的文本

在此处输入图像描述

已尝试的解决方案: : 1> 尝试使用DIff Match Patch但无法正常工作,因为我的输入字符串包含 html 字符串。我不能剥离标签,因为它会失去它的样式。

2> 尝试使用HtmlDiff但这会在单个字符串中同时提供已删除的单词和修改的单词。修改这个库非常困难。

任何线索或帮助将不胜感激。谢谢