微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在生成补丁时忽略 Google Diff Match Patch 中的 EOL Unix 和 Windows

如何解决在生成补丁时忽略 Google Diff Match Patch 中的 EOL Unix 和 Windows

我正在尝试比较两个文本文件一个是 Windows(CR\LF),另一个是 Unix(LF)。尽管文件大小字节不同,但在 Beyond Compare 等比较器工具中打开的两个文件显示相同。有没有办法让 Google DMP 显示文件相等?

非常感谢任何帮助。谢谢!

解决方法

你可以这样做:

DiffMatchPatch dmp = new DiffMatchPatch();    
LinkedList<DiffMatchPatch.Diff> allDiff = dmp.diffMain(txt_1,txt_2);
allDiff.removeIf(diff ->
           (diff.operation == Operation.DELETE || diff.operation == Operation.INSERT) && 
            diff.text.matches("^(\\r\\n|\\r|\\n)+"));

这是我在如何匹配 Windows、Linux 和 MacOS 换行符时使用的答案: Match linebreaks - \n or \r\n?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。