我有很多这样的行:
pointer->[some Random Number Of Alphabets](),
我想搜索此模式,并在.value()
之后将()
完全附加到pointer->[some Random Number Of Alphabets]().value(),
,因此它变为","
但会发生什么呢?它会覆盖%s/\(\<pointer->.*()\), \>/\1.value()/
和空格之后,我打算不受影响。我正在使用的命令是:
{{1}}
我在这里做错了什么?
答案 0 :(得分:1)
我喜欢在这些情况下使用\ze
:%s/\<pointer->.*()\ze, /&.value()/
\ze
标志着比赛的结束&
相当于\0
\>
,因为我觉得这是一次意外。请参阅:h /\>
\{-}
而不是*
,更好的是[^(]*
\zs
用于匹配的开头标记,并且无需&
。请参阅@ Pak的评论如需更多帮助,请参阅:
:h /\ze
:h s/\&
:h /\>
:h /\{-
答案 1 :(得分:0)
这应该有效:
:%s/\v(pointer.*\(\))/\1.value()/