&不在行尾并且没有\&开头时,我需要用&替换\。当&之前没有\时,我可以成功找到它,但是我不能排除该行末尾的那些内容。

line 1 &
line 2
line 3 another &
line 4 & is at the middle


在以上四行中,我只想在第4行将&替换为\&

我该怎么办?

到目前为止,我可以做的是:

/\(\\\)\@<!&


&之前没有\时查找。通过添加负前瞻\@!$,即使用:

/\(\\\)\@<!&\@!$


我应该得到那些不在行尾的&,但是我不能。

最佳答案

关于这样的事情?

:%s/\(.\|^\)&\(.\)/\1\\\&\2/g


基本上,如果&在行的开头,或者在任何字符之前,然后在任何字符之后,则将其替换。

关于regex - 在Vim中不要在行尾使用“\&”替换“\”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4080782/

10-10 19:16