0

在 Beyond Compare 中,如何根据右侧的文本忽略两侧的线?

例如

文件 1

if (a==b)
{
    c++;
    d--;
    //e--;
    f--;
}

文件 2

if (a==b)
{
    c++;
    //d--; /* GG2018 */
    e--;
    //f--;  
}

我想通过比较来显示 d-- 的线有微小的差异。e-- 和 f-- 线应显示为主要差异。这是基于GG2018这个词

我已经尝试过语法和重要性,但仅对于 d-- 行,一侧显示为不重要。左侧显示为红色,没有细微差别。

编辑:文件在C中,语法规则是

GG2018=Text matching ^.*GG2018.*

GG2018 set as unimportant.

还为不重要的文本创建了一条规则——

^.*GG2018.*

Edit2:在上面的示例中添加了 e-- 和 f-- 行。

此外,如果可以使规则更容易,可以修改标识符 GG2018 注释位置。

** 方法 2 **

//d--; /* GG2018 */  changed to         /* GG2018 */ //d--; 

预期结果与之前相同。

4

2 回答 2

1

您没有显示您的语法和重要性设置,因此很难给出答案。但是代码看起来像 Java 或 C。所以我的回答是基于您使用BC4 的默认 Java 文件格式的假设。

我认为您忽略了//第二个文件中的。有了这个注释标志,这不是小区别,而是一个非常重要的区别: 在此处输入图像描述

如果您删除文件 2 中的注释标志,如果您设置规则 Java. 在此处输入图像描述

于 2018-01-28T16:06:13.000 回答
0

即使文本相同,如果语法元素类型不同,那么 Beyond Compare 也会显示为不同。

文本比较在窗口底部的状态栏中显示当前光标位置的语法元素类型。如果将光标移至左侧行dd--;的 ,则显示左侧语法元素为Identifier,右侧语法元素为Comment。这将始终存在差异,因为元素类型不同。

使用不重要的语法无法忽略示例中的差异。如果您拥有 Beyond Compare Pro 许可证,则可以使用文本替换来忽略差异。

d--;在左侧、//d--; /* GG2018 */右侧的文本比较中加载文件。

  1. 单击规则工具栏按钮(裁判图标)。
  2. 转到替换选项卡。
  3. 单击 + 添加替换。
  4. 要查找的文本:(\s+)//(.*) /* GG2018 */
  5. 替换为:$1$2
  6. 检查正则表达式。
  7. 设置边:向右。

() 中的表达式被分组并保存在变量 $1 到 $9 中。

于 2018-01-31T17:31:35.673 回答