重新打包google的diff match和patch库。提供强大的算法来执行同步纯文本所需的操作。

diff-match-patch的Python项目详细描述


差异匹配修补程序

google的Diff Match and Patch库,为现代python打包。

build statusversionlicense

安装

Python2.7或Python3.4或更新版本支持diff match补丁。 您可以从pypi安装它:

python -m pip install diff-match-patch

用法

在两个文本之间生成补丁集(类似于统一diff):

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

对文本应用修补程序集,然后可以使用:

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

原始自述文件

diff match和patch库提供了执行 同步纯文本所需的操作。

  1. 差异:
    • 比较两个纯文本块并有效返回差异列表。
    • Diff Demo
  2. 匹配:
    • 给定一个搜索字符串,在纯文本块中找到它的最佳模糊匹配。对精度和位置进行加权。
    • Match Demo
  3. 修补程序:
    • 在纯文本上应用修补程序列表。即使基础文本不匹配,也要尽最大努力应用修补程序。
    • Patch Demo

最初建立在2006的谷歌文档中,这个库现在可以用C++,C,DART,Java,JavaScript,Lua,Object C和Python提供。

参考值

语言

尽管diff match补丁的每个语言端口都使用相同的api,但仍有一些特定于语言的注释。

标准化的速度测试跟踪每种语言中的relative performance of diffs

算法

这个库实现了Myer's diff algorithm这通常被认为是最好的通用diff。围绕diff算法的pre-diff speedups and post-diff cleanups层提高了性能和输出质量。

这个库还实现了位于flexible matching and patching strategy核心的Bitap matching algorithm

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么Struts 2注释没有LongRangeFieldValidator   java哪个更高效   简单Java加密/解密(错误:意外类型| |必需:找到变量:值)   java谷歌mlkit的条形码扫描仪无法识别任何条形码   java如何捕捉游标窗口错误   java依赖于使用ivy的gradle项目   java是检查谁在使用线程的好方法。interrupted()和不抛出InterruptedException?   java添加。在Eclipse中将文件类化为构建路径   java如何将JFreechart添加到面板?   java数学。当参数名为“e”时,mxparser返回NaN   java使用hadoop文件系统API模拟hadoop fs命令(hadoop fs cat)   图像Java代码打开应用程序并显示图标   使用Java POST请求在Django Tastypie上创建资源,但得到500个错误代码   java SpringBoot显示注销按钮,仅适用于未使用thymeleaf登录的用户   java Android后台服务和活动之间的自动通信   javascript在本地存储中设置键和值,以便在边缘浏览器中加载URL   java通过配置创建重复的springboot控制器