Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得两个字符串之间的更改(插入、删除或相同)?_Javascript_C#_Algorithm_Levenshtein Distance - Fatal编程技术网

Javascript 如何获得两个字符串之间的更改(插入、删除或相同)?

Javascript 如何获得两个字符串之间的更改(插入、删除或相同)?,javascript,c#,algorithm,levenshtein-distance,Javascript,C#,Algorithm,Levenshtein Distance,我使用了Levenshtein算法的实现来获得两个字符串之间的距离,但我真正需要的是第二个字符串中(索引)发生插入、删除或保持不变的位置? 在JavaScript(或其他C#)中是否有实现这一点的方法?谷歌提供了包含健壮算法的Diff-Match和Patch库来执行您要求的任务。这些库可以用于java、JavaScript、Python、C++、Cype、Objul-C、Lua和DART。 Diff:Diff选取两个文本并找出差异。此实现以字符为基础工作。任何差异的结果都可能包含“箔条”,即不相

我使用了
Levenshtein
算法的实现来获得两个字符串之间的距离,但我真正需要的是第二个字符串中(索引)发生插入、删除或保持不变的位置?

在JavaScript(或其他C#)中是否有实现这一点的方法?

谷歌提供了包含健壮算法的Diff-Match和Patch库来执行您要求的任务。这些库可以用于java、JavaScript、Python、C++、Cype、Objul-C、Lua和DART。
  • Diff:Diff选取两个文本并找出差异。此实现以字符为基础工作。任何差异的结果都可能包含“箔条”,即不相关的小共性,这会使输出复杂化。后差异清理算法考虑了这些琐碎的共性
  • Match:Match在较大的文本中查找模式。匹配的这种实现是模糊的,这意味着即使模式包含错误并且与文本中找到的内容不完全匹配,它也可以找到匹配。此实现还接受预期的位置,在该位置附近应该找到匹配项。候选匹配基于a)模式和文本之间拼写差异的数量和b)候选匹配与预期位置之间的距离进行评分。匹配距离参数设置这两个度量的相对重要性
  • 补丁:两个文本可以相互区分,生成补丁列表。然后可以对第三个文本应用这些修补程序。如果第三个文本有自己的编辑,此版本的修补程序将尽最大努力应用其更改,报告哪些修补程序成功,哪些修补程序失败

  • 您可以从中了解更多信息。

    谷歌提供了Diff-Match和Patch库,其中包含用于执行您要求的任务的健壮算法。这些库可以用于java、JavaScript、Python、C++、Cype、Objul-C、Lua和DART。
  • Diff:Diff选取两个文本并找出差异。此实现以字符为基础工作。任何差异的结果都可能包含“箔条”,即不相关的小共性,这会使输出复杂化。后差异清理算法考虑了这些琐碎的共性
  • Match:Match在较大的文本中查找模式。匹配的这种实现是模糊的,这意味着即使模式包含错误并且与文本中找到的内容不完全匹配,它也可以找到匹配。此实现还接受预期的位置,在该位置附近应该找到匹配项。候选匹配基于a)模式和文本之间拼写差异的数量和b)候选匹配与预期位置之间的距离进行评分。匹配距离参数设置这两个度量的相对重要性
  • 补丁:两个文本可以相互区分,生成补丁列表。然后可以对第三个文本应用这些修补程序。如果第三个文本有自己的编辑,此版本的修补程序将尽最大努力应用其更改,报告哪些修补程序成功,哪些修补程序失败

  • 您可以从中了解更多信息。

    您是否真的进行了搜索,有很多库都可以这样做。谷歌有一个“diff-match-patch”库,可以用多种语言工作。非常感谢@epascarello,请添加注释作为答案,这样我就可以标记它了。我之前在JS中做了一个高效的实现。它可能会给你一个想法。它是通过在几毫秒内旋转字符串和处理大型段落来完成的。如果你真的进行了搜索,那么有很多库都可以这样做。谷歌有一个“diff-match-patch”库,可以用多种语言工作。非常感谢@epascarello,请添加注释作为答案,这样我就可以标记它了。我之前在JS中做了一个高效的实现。它可能会给你一个想法。它是通过在几毫秒内旋转字符串和处理大型段落来完成的。