我一直在尝试在vim中进行简单的替换,并发现vim中的 不能与或 一起\?
使用,也就是说,在vim中:*
+
(NFA regexp) Can't have a multi follow a multi
i want it to stop here, not here
~
~
~
[NORMAL] ...
:%s/^\(.*\?\)here//
Run Code Online (Sandbox Code Playgroud)
如果我删除\?
它,它可以工作,但它的正则表达式最多匹配 2nd here
。
但使用普通的正则表达式它可以工作:https ://regex101.com/r/iHdxxl/1
为什么不能\?
与vim 一起使用*
或\+
在 vim 中使用?
正如那里所述,你不能?
在 vim 中的星号后面添加字符。为了使搜索不贪婪,您需要使用.\{-}
而不是.*
:
:%s/\(.\{-}\)here//
Run Code Online (Sandbox Code Playgroud)