我试过比较两个文本文件。如果这些包含相同的数据,但即使有一个空格的差异,结果也会显示为“不同”。
谁能告诉我如何使用 C# 比较两个 JavaScript 文件?
我试过比较两个文本文件。如果这些包含相同的数据,但即使有一个空格的差异,结果也会显示为“不同”。
谁能告诉我如何使用 C# 比较两个 JavaScript 文件?
由于 JavaScript 可以容忍空格(只要语法正确,就可以容忍任意数量的空格),如果您想比较除空格之外的所有内容,最简单的做法是使用正则表达式替换:
Regex _r = new Regex(@"\s+", RegexOptions.Compiled);
string result = _r.Replace(value, " ");
在两个文件上运行它并比较结果;它用单个空格替换任何标准空白字符序列(空格、制表符、回车、垂直制表符等)。然后,您可以与 Equals 进行比较(是否区分大小写,根据您的需要)。
当然,空格在字符串中很重要,因此假设所有比较文件中的字符串处理都不太依赖空格。
然而,两个非常不同的代码文件可以产生相同的效果,所以如果这就是你面临的艰巨工作之后的结果。
您只需要知道它们是否完全相同吗?如果是这样,您可以将它们加载到内存中并比较 .length() 属性...
从技术上讲,如果一个文件包含额外的空间,它们就不是“相同的”。我会先比较长度,如果不匹配,您需要逐字节进行比较。如果您想删除多余的空格,您可能需要先对两个文件的内容执行 Trim() 之类的操作。
这是一个旧的 MS 帖子的链接,描述了如何创建文件比较功能: