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



我试图比较两个文本文件,一个是Windows(CRLF),另一个是Unix(LF)。这两个文件在比较工具(如Beyond Compare)中打开时显示相同,尽管文件大小字节不同。是否有一种方法,使谷歌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换行符的答案:匹配换行符- n还是rn?

最新更新