为什么WinMerge忽略一行而不是另一行?
问题描述:
我比较两个不同的文件,并使用这些我行过滤器:为什么WinMerge忽略一行而不是另一行?
-
^'
- 忽略其与'
字符 -
^[ |\t]*//
启动线 - 忽略其启动零个或多个空格或制表符线路,进行通过//
-
[\/\/]+.*
- 忽略与//
行的任何数量的字符,唯一的限制是换行符。
然而,忽视行为似乎是不一致的:
这是为什么第一个case语句忽略,但第二个是不是?
我猜它是与字符串中的/
被分配,但我的三线过滤器明确查找2 //
使不应该是问题...
答
[\/\/]+.*
匹配行的末尾。 []是“此组中的任何内容”,并且您只是将/字符列出两次。所以它不需要第二个/做一个匹配。它相当于\/.*
(\/\/)+.*
会匹配//结束行(。* make + redundant)。但那可能是你想要的。 ((),而不是冗余)它相当于\/\/.*
+0
@ sab669将注释解释为答案。 :3 – Tezra
你确定'[\/\ /] +。*'做你认为它做的吗? –
'[\/\//] +。*'匹配行尾的a /。 []是“此组中的任何内容”,并且您只是将/字符列出两次。所以它不需要第二个/做一个匹配。它相当于'\ /.*' – Tezra
@ sab669'(\/\ /)+。*'会匹配'//'到行尾(。* makes + redundant)。但那可能是你想要的。 ('()',而不是冗余) – Tezra