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