跳转到主要内容

Diff Match and Patch

项目描述

diff-match-patch

Google的 Diff Match and Patch 库,为现代Python打包。

version changelog license

安装

diff-match-patch 支持Python 3.7或更高版本。您可以从PyPI安装它

python -m pip install diff-match-patch

使用

生成两个文本之间的补丁集(类似于统一差异)

from diff_match_patch import diff_match_patch

dmp = diff_match_patch()
patches = dmp.patch_make(text1, text2)
diff = dmp.patch_toText(patches)

然后可以使用以下方法将补丁集应用到文本上

from diff_match_patch import diff_match_patch

dmp = diff_match_patch()
patches = dmp.patch_fromText(diff)
new_text, _ = dmp.patch_apply(patches, text)

原始README

Diff Match and Patch库提供了强大的算法,用于执行同步纯文本所需的操作。

  1. 差异
    • 比较两个纯文本块,并高效地返回差异列表。
    • 差异演示
  2. 匹配
    • 给定一个搜索字符串,在纯文本块中找到其最佳模糊匹配。同时权衡准确性和位置。
    • 匹配演示
  3. 补丁
    • 将一系列补丁应用到纯文本上。即使底层文本不匹配,也会尽力应用补丁。
    • 补丁演示

最初于2006年构建,用于为Google Docs提供动力,现在这个库在C++、C#、Dart、Java、JavaScript、Lua、Objective C和Python中可用。

参考

语言

尽管Diff Match Patch的每种语言版本都使用相同的API,但也有一些特定于语言的说明。

一个标准化的速度测试跟踪了每种语言中差异的相对性能。

算法

这个库实现了Myer的差异算法,这通常被认为是最好的通用差异算法。在差异算法周围有一个预差异加速和后差异清理层,提高了性能和输出质量。

这个库还实现了一个Bitap匹配算法,这是灵活的匹配和补丁策略的核心。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

diff-match-patch-20230430.tar.gz (43.3 kB 查看散列)

上传时间

构建分布

diff_match_patch-20230430-py3-none-any.whl (42.8 kB 查看散列)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面