除了比较3的专业版支持这种通过其文本替换功能。如果您已经购买了标准版的许可,你需要恢复到试用模式进行测试:http://www.scootersoftware.com/suppo...?zz=kb_evalpro
- 加载在文本比较你的两个文件。
- 打开会话设置从该会议菜单对话框,并在替换选项卡中单击新建创建一个新的替代品。
- 在要查找的文本编辑,使用
(\w+)\.(\w+)
- 在与编辑替换,使用
$1("$2")
- 检查正则表达式复选框。
另一种方法是标记的obj.varname
和obj("varname")
为不重要的任何实例。基本步骤如下:
- 在文本比较中加载您的两个文件。
- 打开会话设置从会话菜单对话框以及重要性选项卡上单击编辑语法...按钮。
- 在接下来的对话框中点击顶部列表框中新建...按钮的下方。
- 更改元素名称领域的一些有用的东西(比方说, “PropertyAccess”)。
- 更改类别*至列表。
在列表 *编辑文本,添加以下两行:
obj.varname
obj("varname")
点击OK关闭语法项目对话框,然后单击确定再次关闭文本格式 *语法项目。
- 取消“PropertyAccess”(或任何你把它命名为)在语法元素列表框在会话设置对话框,然后单击OK 将其关闭。
这种方法不够灵活或干净。在上面的步骤中,您匹配特定的硬编码对象和变量名称,因此obj.varname
不重要,但obj.othervar
不是,即使它与obj("othervar")
对齐。如果双方的文本都不重要,那么差异就不重要了;如果一方重要,这将是一个重要的区别。因此,通过上述步骤,obj.varname
和obj("varname")
在任何地方都不重要,但它可以正常工作,因为它们可以与其他匹配那些定义(并且因此不重要)的其他情况相匹配,或者将与其他情况相匹配,不符合该定义,这将是重要的,并会使差异变得重要。
您可以使用正则表达式来匹配更一般的文本类别,但您可能不想。例如,如果你想跟随这个模式,你可以使用这些两行而不是所有文本匹配:在语法项目对话框
\w+\.\w+
\w+\("\w+"\)
再检查正则表达式复选框,以便他们匹配那样。
其优缺点是,任何文本匹配那些模式是不重要的。 abc.newvar
与def.varname
将被视为不重要的区别,因为双方都符合不重要的定义。对于诸如注释或空白变化之类的内容来说,这很好,但可能不是您想要在此处执行的操作。
这太棒了!第一个解决方案像魅力一样工作,我发现了一个我从来不知道的功能,但是第二个解决方案仍然没有。如果您不介意将所有定义为重要或不重要的语法发布出去,那么我可以重复一遍。 – kiev 2012-08-16 18:23:39
@基辅我更新了第二种方法的更多细节。 – 2012-08-16 19:17:32