一个好用的字符过滤,差异匹配补丁的扩展库,各语言版本

 

diff-match-patchgithub地址

支持c,java,javascript,lua,object-c,python

https://github.com/google/diff-match-patch/wiki/API

该库有多种语言版本。不管使用什么语言,使用它的界面都是一样的。该页面描述了公共功能的API。更多实例在上方地址。

Diff Match Patch的每个语言端口都使用相同的API

java版本

import java.util.LinkedList;
import name.fraser.neil.plaintext.diff_match_patch;

public class hello {
  public static void main(String args[]) {
    diff_match_patch dmp = new diff_match_patch();
    LinkedList<diff_match_patch.Diff> diff = dmp.diff_main("Hello World.", "Goodbye World.");
    // Result: [(-1, "Hell"), (1, "G"), (0, "o"), (1, "odbye"), (0, " World.")]
    dmp.diff_cleanupSemantic(diff);
    // Result: [(-1, "Hello"), (1, "Goodbye"), (0, " World.")]
    System.out.println(diff);
  }
}

lua版本,不过bug是免不了的因为lua字符串不像更高级的语言会在初始化时默认设置编码规则,所有的字节规则需要自己定义,所以这个版本的lua需要自己造轮子

local dmp = require 'diff_match_patch'

diff = dmp.diff_main('Hello World.', 'Goodbye World.')
-- Result: [(-1, "Hell"), (1, "G"), (0, "o"), (1, "odbye"), (0, " World.")]
dmp.diff_cleanupSemantic(diff)
-- Result: [(-1, "Hello"), (1, "Goodbye"), (0, " World.")]
for i,tuple in ipairs(diff) do
  print('(' .. tuple[1] .. ', ' .. tuple[2] .. ')')
end

 

转载于:https://www.cnblogs.com/dmeck/p/8510603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值