在谷歌上搜索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中的外观?
答案 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。