首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略beyondcompare中语法上的差异

忽略beyondcompare中语法上的差异
EN

Stack Overflow用户
提问于 2012-08-15 21:57:37
回答 1查看 2.2K关注 0票数 1

在代码的一个分支中,我将所有代码从obj.varname更改为obj("varname"),当我比较这些代码时,我希望忽略这些差异,因为varname是相同的。

我有一个我认为我需要的正则表达式,但不幸的是,我不能使用Scooter中的Beyond Compare获得要忽略的比较

^obj\("\w*"\)|obj\.\w*$

我正在学习本教程http://www.scootersoftware.com/support.php?zz=kb_unimportantv3

所以我的问题是:在beyond compare中,这是可能的吗?如果是,请分享解决方案,包括说明或发布您的屏幕截图。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 00:19:30

Beyond Compare 3的专业版通过其Text Replacements功能支持此功能。如果您已经购买了标准版许可证,则需要恢复到试用模式进行测试:http://www.scootersoftware.com/suppo...?zz=kb_evalpro

将您的两个文件加载到文本比较中。

  • 从会话设置菜单中打开会话设置对话框,然后在选项卡上单击新建<>E214>要创建新的<

  • 文本要查找编辑,请使用$1("$2")

  • Check 替换为编辑,使用
  1. 正则表达式复选框。

<

>H229>< replacement.

  • In >E229E127><>E228>复选框。H229>

另一种方法是将obj.varname和obj("varname")的任何实例标记为不重要。基本步骤如下:

将您的两个文件从Session菜单加载到文本中,然后在Importance选项卡上单击编辑语法...<代码>E244按钮。在下一个对话框中,单击顶部E151元素名称字段下面的E147新建...E248按钮。编辑列表类别*要编辑列表中的文本*,请添加以下两行:

obj.varname

obj("varname")

  • Click OK关闭Grammar Item对话框,然后再次单击OK以关闭PropertyAccess会话设置对话框中语法元素列表框中的Text Format* "PropertyAccess“(或您命名的任何内容),然后单击E177确定将其关闭。H279

这种方法不是那么灵活或整洁。在上面的步骤中,您将匹配特定的、硬编码的对象名和变量名,因此obj.varname不重要,但obj.othervar不重要,即使它与obj("othervar")对齐。如果两边的文本都不重要,那么差别就不重要;如果一边很重要,那就是重要的差别。因此,通过上面的步骤,obj.varnameobj("varname")在任何地方都不重要,但它将正常工作,因为它们要么匹配到也与这些定义匹配的其他案例(因此不重要),要么匹配到与该定义不匹配的其他案例,这将是重要的,这将使差异变得重要。

您可以使用正则表达式来匹配更一般的文本类别,但您可能不想这样做。例如,如果您希望匹配遵循该模式的所有文本,则可以使用以下两行:

代码语言:javascript
复制
\w+\.\w+
\w+\("\w+"\)

然后选中Grammar Item对话框中的Regular expressions复选框,这样它们就会以这种方式匹配。

这样做的好处/坏处是,任何与这些模式匹配的文本都不重要。abc.newvardef.varname将被认为是不重要的区别,因为双方都符合不重要的定义。这对于注释或空格更改之类的事情很好,但可能不是您想要在这里做的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11970613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档