0

我试过比较两个文本文件。如果这些包含相同的数据,但即使有一个空格的差异,结果也会显示为“不同”。

谁能告诉我如何使用 C# 比较两个 JavaScript 文件?

4

3 回答 3

1

由于 JavaScript 可以容忍空格(只要语法正确,就可以容忍任意数量的空格),如果您想比较除空格之外的所有内容,最简单的做法使用正则表达式替换:

Regex _r = new Regex(@"\s+", RegexOptions.Compiled);
string result = _r.Replace(value, " ");

在两个文件上运行它并比较结果;它用单个空格替换任何标准空白字符序列(空格、制表符、回车、垂直制表符等)。然后,您可以与 Equals 进行比较(是否区分大小写,根据您的需要)。

当然,空格在字符串中很重要,因此假设所有比较文件中的字符串处理都不太依赖空格。

然而,两个非常不同的代码文件可以产生相同的效果,所以如果这就是你面临的艰巨工作之后的结果。

于 2010-09-27T13:18:52.273 回答
0

您只需要知道它们是否完全相同吗?如果是这样,您可以将它们加载到内存中并比较 .length() 属性...

于 2010-09-27T12:58:54.353 回答
0

从技术上讲,如果一个文件包含额外的空间,它们就不是“相同的”。我会先比较长度,如果不匹配,您需要逐字节进行比较。如果您想删除多余的空格,您可能需要先对两个文件的内容执行 Trim() 之类的操作。

这是一个旧的 MS 帖子的链接,描述了如何创建文件比较功能:

http://support.microsoft.com/kb/320348

于 2010-09-27T13:12:59.807 回答