Beyond Compare 3 的专业版通过其文本替换功能支持这一点。如果您已经购买了标准版许可证,则需要恢复到试用模式进行测试: http ://www.scootersoftware.com/suppo...?zz=kb_evalpro
- 在文本比较中加载您的两个文件。
- 从“会话”菜单打开“会话设置”对话框,然后在“替换”选项卡上单击“新建”以创建新的替换。
- 在要查找编辑的文本中,使用
(\w+)\.(\w+)
- 在替换为编辑中,使用
$1("$2")
- 选中正则表达式复选框。
另一种方法是将任何实例标记为obj.varname
和obj("varname")
不重要。基本步骤是这样的:
- 在文本比较中加载您的两个文件。
- 从“会话”菜单打开“会话设置”对话框,然后在“重要性”选项卡上单击“编辑语法...”按钮。
- 在下一个对话框中,单击顶部列表框下方的New...按钮。
- 将元素名称字段更改为有用的名称(例如“PropertyAccess”)。
- 将Category*更改为List。
在Text in list * edit 中,添加这两行:
obj.varname
obj("varname")
单击确定关闭语法项对话框,然后再次单击确定关闭文本格式*语法项。
- 在“会话设置”对话框的“语法元素”列表框中取消选中“PropertyAccess”(或您命名的任何名称),然后单击“确定”将其关闭。
这种方法不够灵活或干净。在上面的步骤中,您正在匹配特定的硬编码对象和变量名称,因此obj.varname
不重要但不重要obj.othervar
,即使它与obj("othervar")
. 如果两边的文字都不重要,那么差异将不重要;如果一侧很重要,那将是一个重要的区别。因此,通过上述步骤,obj.varname
并且obj("varname")
在任何地方都不重要,但它会正常工作,因为它们要么匹配到也匹配这些定义(因此不重要)的其他情况,要么匹配到其他不匹配的情况这个定义很重要,也会使差异变得重要。
您可以使用正则表达式来匹配更一般的文本类别,但您可能不想这样做。例如,如果您想匹配遵循该模式的所有文本,您可以使用以下两行代码:
\w+\.\w+
\w+\("\w+"\)
然后检查语法项目对话框中的正则表达式复选框,以便它们以这种方式匹配。
这样做的好处/坏处是任何与这些模式匹配的文本都不重要。 abc.newvar
vs.def.varname
会被认为是一个不重要的区别,因为双方都符合不重要的定义。这对于诸如注释或空白更改之类的事情很有用,但可能不是您想要在这里做的。