看起来正面消极的看后面前瞻

时间:2016-05-11 15:10:50

标签: vsvim

在谷歌上搜索vsvim lookahead或者lookbehind后,wiki我无法弄清楚如何,或者它是否支持前瞻或后视(正面或负面)以及如何使用如果是这样的话。

我已经尝试了一些与\ze \@= (?<=let \w\+)( \(?<=let \w\+\)(不同的// bubble sort for $AR for($i = count($AR)-1 ; $i >= 1; $i--) for($j = 0; $j < $i; $j++) { if($AR[$j] > $AR[$j+1]) { $t = $AR[$j]; $AR[$j] = $AR[$j+1]; $AR[$j+1] = $t; } //if } //for j {v} syntaxes answers但是它们似乎都没有在vs vim中用于匹配(也不是替换)

你如何看待VsVim中的外观?

2 个答案:

答案 0 :(得分:2)

对于任何新手,我会在此处复制此链接的内容以供将来使用:

http://ssiaf.blogspot.ru/2009/07/negative-lookbehind-in-vim.html

/\(Start\)\@<!Date

这将匹配&#39;日期&#39;在&#39; EndDate&#39;和昨天的日期&#39;但不会匹配“StartDate&#39;

/Start\(Date\)\@!

将匹配&#39;开始&#39;在&#39;开始但不在&#39; StartDate&#39;

/Start\(Date\)\@=

将匹配&#39;开始&#39;在&#39; StartDate&#39;但不是在开始

/\(Start\)\@<=Date

将匹配&#39;日期&#39;在&#39; StartDate&#39;但不是在EndDate&#39;和&#39;昨天的日期&#39;

答案 1 :(得分:0)

我想从 @briansrls 展开excellent answer。我一直在寻找一种更强大的解决方案,该解决方案可以处理多词短语,通配符(用于短语之间的潜在空白)和替代项(即模式):

没有通配符:

  Positive Lookahead:  \(find this\)\(followed by this\|or that\)\@=
  Negative Lookahead:  \(find this\)\(not followed by this\|or that\)\@!
  Positive Lookbehind: \(preceded by this\|or that\)\@<=\(find this\)
  Negative Lookbehind: \(not preceded by this\|or that\)\@<!\(find this\)

使用通配符:

  Positive lookahead:  \(find this\)\(.*\(eventually followed by this\|or that\)\)\@=
  Negative lookahead:  \(find this\)\(.*\(not eventually followed by this:\|or that\)\)\@!
  Positive lookbehind: \(\(eventually preceded by this\|or that\).*\)\@<=\(find this\) 
  Negative lookbehind: \(\(not eventually preceded by this\|or that\).*\)\@<!\(find this\)

注意:对于通配符版本,需要使用额外的括号,以便将通配符从替代组中排除,但包含在环视组中。这样可以防止在每个替代方案中重复使用通配符。也可以使用\zs\ze来避免多余的括号,但是我发现这种方法更加直观。

有关更多信息:

更新:截至目前,{s {1}}和\zs在VsVim中是not yet implemented