问题描述
我正在尝试比较两个文本文件,一个是 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?