取代的样本:
hello world (one) hello world (two two) hello world (three three three)
我想要的结果:
hello world $one# hello world $two two# hello world $three three three#
我试过用:
s/(\(\w\\+\s*\))/$\1#/g
但它不起作用。
答案 0 :(得分:2)
进行这两个简单的替换比直接尝试提出单个替换更直观,速度更快:
:s/(/\$/g
:s/)/#/g
反正:
:s/(\([^)]\+\))/\$\1#/g
搜索部分:我们正在寻找一个开头的括号,后面是一个或多个字符,这些字符没有关闭我们放入捕获组的括号,后跟一个右括号。
替换部分:我们用美元符号替换,然后是我们的捕获组,接着是octothorpe。
答案 1 :(得分:0)
非常感谢大家。我已经把它吵醒了。:s/(\(\(\w*\s*\)*\))/$\1#/g
。上面的命令可以给出我想要的正确结果。