为什么WinMerge忽略一行而不是另一行?

问题描述:

我比较两个不同的文件,并使用这些我行过滤器:为什么WinMerge忽略一行而不是另一行?

  • ^' - 忽略其与'字符
  • ^[ |\t]*//启动线 - 忽略其启动零个或多个空格或制表符线路,进行通过//
  • [\/\/]+.* - 忽略与//行的任何数量的字符,唯一的限制是换行符。

然而,忽视行为似乎是不一致的:

这是为什么第一个case语句忽略,但第二个是不是?

我猜它是与字符串中的/被分配,但我的三线过滤器明确查找2 //使应该是问题...

+0

你确定'[\/\ /] +。*'做你认为它做的吗? –

+1

'[\/\//] +。*'匹配行尾的a /。 []是“此组中的任何内容”,并且您只是将/字符列出两次。所以它不需要第二个/做一个匹配。它相当于'\ /.*' – Tezra

+1

@ sab669'(\/\ /)+。*'会匹配'//'到行尾(。* makes + redundant)。但那可能是你想要的。 ('()',而不是冗余) – Tezra

[\/\/]+.*匹配行的末尾。 []是“此组中的任何内容”,并且您只是将/字符列出两次。所以它不需要第二个/做一个匹配。它相当于\/.*

(\/\/)+.*会匹配//结束行(。* make + redundant)。但那可能是你想要的。 ((),而不是冗余)它相当于\/\/.*

+0

@ sab669将注释解释为答案。 :3 – Tezra