差异清理语义未按预期工作

作者: ash-lionell创建于 2020年10月26日更新于 2023年3月24日

对于以下输入: > 此文本为粗体、下划线、斜体、Arial 字体,并具有不同的颜色和大小。 > 此文本不是粗体、没有下划线、没有斜体、Calibri 字体,具有相同的颜色和大小。 diff 清理后返回: > [Diff(EQUAL,"This text is "), Diff(DELETE,"not "), Diff(EQUAL,"bold,"), Diff(DELETE," not"), Diff(EQUAL," underlined,"), Diff(DELETE," not"), Diff(EQUAL," italicized, "), Diff(DELETE,"Calibri"), Diff(INSERT,"Arial"), Diff(EQUAL," and has "), Diff(DELETE,"the same"), Diff(INSERT,"a different"), Diff(EQUAL," color and size.")] 正如预期的那样。 但是,对于一些其他文本,如: > 这是一个样本文本。 > 这是一个样本测试。 diff 清理后返回: > [Diff(EQUAL,"This is a sample te"), Diff(DELETE,"x"), Diff(INSERT,"s"), Diff(EQUAL,"t.")] 然而,它本应清理最后一个单词文本/test,并将其显示为一个 DELETE/INSERT 操作。 在 Java 和 JavaScript 绑定中都观察到了这种行为。

内容来源: google/diff-match-patch