首页 > 解决方案 > BeyondCompare 忽略修改标签的开始和结束标签之间的内容

问题描述

我在另一篇文章中看到 BeyondCompare 不能忽略换行符(或者至少当时不能),所以我认为这是一个失败的原因。但是,我们有几百个文件,我们已经替换了文件中的标签(例如:{my_tag}some content{/my_tag}已更改为{new_tag}some content{/new_tag}. 在某些情况下,第一个标签 + 内容可能只有 5 行,而新标签 + 内容是 10 行。有可能吗?忽略这些变化?

我尝试{my_tag((.|\n)*){\/my_tag(.*)了似乎在 regex101 中有效的方法,但是在尝试将其放入 BeyondCompare 时出现错误。

谢谢你的帮助。

标签: beyondcomparebeyondcompare4

解决方案


如果您忽略 {my_tag}..{/my_tag} 和 {new_tag}..{/new_tag} 的所有实例以及其中的内容,您可以将其作为文件格式的一部分作为语法元素,而不是使用“会话设置”对话框的“不重要的文本”部分(正则表达式仅限于单行)。

如果您还没有文件的自定义文件格式,则需要先创建一个新格式。如果你这样做了,请跳到第 6 步。提前道歉这是多少步;UI 需要重新设计。

  1. 转到工具 > 文件格式...
  2. 单击左侧列表底部的 [+] 按钮,然后选择“文本格式”
  3. 在“常规”选项卡上添加与您的文件名匹配的掩码,例如 *.csv。
  4. 单击“另存为”为其命名,然后单击“关闭”以保存所有更改。
  5. 如果您已经加载了文件,则需要从工具栏上的“格式”下拉菜单中选择新的文件格式。如果您在比较编辑上方的面板中看到文件格式名称,则可以判断它是否正确。

在系统中设置文件格式并为文件加载它后:

  1. 单击工具栏上的“格式”按钮可以编辑当前加载的文件格式。
  2. 在语法选项卡上,单击顶部列表框下方的 [+] 按钮。
  3. 在“语法项目”对话框中,
    a。给元素一个名称,如“忽略的标签”
    b。将“类别”更改为“分隔”
    c。在“Text from”中输入{(my|new)_tag}并在“to”中输入{/(my|new)_tag}
    d。检查“正则表达式”选项。
    e. “匹配字符大小写”影响搜索字符串是否区分大小写。“此元素区分大小写”控制是否将两侧的大小写差异视为重要差异。
    F。点击“确定”
  4. 在外部“文本格式”对话框中单击“确定”。此时 BC 应该询问您是否要重新加载文件格式,您应该这样做。完成后,您可以单击其中一个标签,您应该会在编辑下方的状态栏中看到您给它的名称(水平滚动条旁边)
  5. 单击“规则”工具栏按钮,将打开“会话设置”对话框。
  6. 在“重要性”选项卡上,取消选中底部列表框中的“忽略的标签”项(或您命名的任何内容)。
  7. 如果您想在所有情况下都忽略它,请将对话框底部的组合框从“仅用于此视图”更改为“同时更新会话默认值”。如果您不这样做,则只要您想忽略标签,就需要重复步骤 10-13。
  8. 单击“确定”。比较应该重新加载,结果应该是蓝色的,这是一个不重要的区别。

一旦所有这些都设置好了,它应该会自动运行,如果需要,可以在“颜色、字体”下的“选项”对话框中为元素添加语法突出显示。


推荐阅读