我有一个正则表达式,可以用特定的字符串替换匹配到的模式,其中这个字符串是通过重复某个字符直到字符数与匹配到的模式相同而动态构建的。
例如,假设我有以下替换命令:
%s/hello/-----/g
但是,我希望做的是这样的:
%s/hello/-{5}/g
不存在的记号-{5}
表示重复出现五次的破折号。
有没有办法实现这个?
最终,我想要实现类似这样的效果:
%s/(hello)*/-{\=strlen(\0)}/g
这将替换任何仅由字符串hello
组成的实例,使用破折号字符重复匹配的字符串长度次数的字符串。
function-list
。有时更方便。 - sidyll:help sub-replace-special
和:help sub-replace-expression
。 - Benedikt Köppel