【发布时间】:2011-03-04 22:15:15
【问题描述】:
我有一个包含以下表达式的文件:
某事[0]
其中可能有不同的数字而不是 0。我想用
替换所有这些发生somethingElse0
其中的数字应该与我替换的表达式中的相同。我该怎么做?
【问题讨论】:
我有一个包含以下表达式的文件:
某事[0]
其中可能有不同的数字而不是 0。我想用
替换所有这些发生somethingElse0
其中的数字应该与我替换的表达式中的相同。我该怎么做?
【问题讨论】:
像这样使用模式分组:
:%s/something\[\(\d\+\)\]/somethingElse\1/g
【讨论】:
\d 比较简单,我猜他可能有几个数字 -> \d\+
您应该结合使用匹配组和字符类来完成此操作。您的示例,如果您的意思是用 SomethingElse(same-numbers) 替换 Something(numbers-here),则可以使用以下命令解决:
:%s/Something\(\d\+\)/SomethingElse\1/g
这会查找文件中所有包含Something(a-bunch-of-digits)的位置,并将Something替换为SomethingElse。 + 表示一位或多位数字;如果你想要零个或多个数字,你可以用 * 替换它。
【讨论】: