如何获得两个字符串之间的变化(插入,删除或相同)
How to get the changes between two strings (insertion, deletion or same)?
我使用Levenshtein
算法的实现来获得两个字符串之间的距离,但我真正需要的是在第二个字符串中发生插入或删除或保持不变的地方(索引)?
在JavaScript(或其他c#)中有任何实现吗?
Google提供Diff Match和Patch库,其中包含健壮的算法来执行您所要求的任务。这些库可以在Java, JavaScript, Python, c++, c#, Objective-C, Lua和Dart中使用。
- Diff: Diff取两个文本并查找差异。这个实现以字符为单位工作。任何困难的结果都可能包含"箔条",不相关的小共性使输出复杂化。post-diff清理算法排除了这些琐碎的共性。
- Match: Match在较大的文本中查找模式。match的这种实现是模糊的,这意味着即使模式包含错误并且与文本中找到的内容不完全匹配,它也可以找到匹配。此实现还接受预期的位置,应该在其附近找到匹配项。候选匹配的评分基于a)模式和文本之间的拼写差异数量以及b)候选匹配与预期位置之间的距离。匹配距离参数设置这两个指标的相对重要性。
- Patch:两个文本可以相互区分,生成一个补丁列表。然后,这些补丁可以应用于第三个文本。如果第三个文本有自己的编辑,则此版本的补丁将在尽最大努力的基础上应用其更改,报告哪些补丁成功,哪些补丁失败。
相关文章:
- 如何使用Jscript | JQuery在textArea中获取插入的|删除的字符串的索引和长度
- 如何使用Extendscript scriptui插入、更新、删除XML元素的值
- 在使用jquery插入之前删除元素
- 使用JQuery动态插入/删除字段
- jQuery 插入,然后淡出,然后删除
- 如何使用vanillaJS将mp4视频插入到具有特定维度的html文档中,播放2秒,然后删除节点
- JS-在JSON文件中插入、删除和添加数据
- 如何在文本输入中插入删除图标并实现删除文本
- 谷歌地图自动完成删除空格并在地址字符串中插入加号(+)
- JQuery 数据表添加新行,如果该行已经存在,请将其删除并为该 ID 插入新行
- 填充对象时插入我的对象中的神秘“删除”键
- 使用 PHP 创建、插入、更新或删除 XML
- 删除引导下拉插入符号
- 如何通过javascript在文本区域中插入/删除字符
- 禁用插入或删除 SlickGrid 中的空行
- 简单的“删除工作表/插入工作表”脚本上的服务器错误
- 如何通过插入其中的按钮来删除父 iframe
- 从表中删除所有图像并将其插入之前
- (Bootstrap) -更改下拉按钮文本以反映所单击的项目删除插入符号
- 什么'隐藏/显示HTML元素或删除/插入它会更快