1

我的项目包括一些用非 UTF-8 字符(如平方符号)表示的度量单位。对于大多数编辑器,这些都显示为以下字符: �。

我正在比较部分源代码,beyond compare我想忽略出现这些符号的情况。我尝试了这两种解决方案:

超越比较 - 忽略某些文本字符串?

在比较 Delphi 表单文件的版本时,如何让 Beyond Compare 忽略某些差异

但在这两种情况下,差异仍然用红色标记(? vs � 或 ² vs �)。我该如何解决?

4

1 回答 1

1

如果字符是不可打印的字符,您可以在 Beyond Compare 4 的文本比较中使用十六进制值将它们定义为不重要的文本。

例如,假设字符是上标 2,即平方符号,十六进制值为 0x00B2。

  1. 在文本比较中加载文件。
  2. 单击规则工具栏按钮(裁判图标)。
  3. 在重要性选项卡中,单击编辑语法。
  4. 在语法选项卡中,单击 +。
  5. 元素名称:平方
  6. 文本匹配:\x{00B2}
  7. 检查正则表达式
  8. 单击确定。
  9. 单击确定。
  10. 在语法元素列表中,取消选中平方使其不重要。
  11. 单击确定。

如果查看 | 忽略不重要的文本已打开,匹配平方的差异将显示为匹配(黑色)。如果关闭,匹配 Squared 的差异将显示为蓝色。

在上述说明中,正则表达式 \x{nnnn} 匹配具有十六进制值 nnnn 的字符。

参考:

Unicode 字符上标 2

在 Beyond Compare 中定义不重要的文本

Beyond Compare 帮助 - 正则表达式参考

于 2016-12-15T20:31:43.097 回答