Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex vim正则表达式替换量词_Regex_Search_Vim_Replace - Fatal编程技术网

Regex vim正则表达式替换量词

Regex vim正则表达式替换量词,regex,search,vim,replace,Regex,Search,Vim,Replace,如何量化vim搜索/替换表达式的替换部分 :%s/x\{4\}/yyyy/g 将用4个y替换每次出现的4个x :%s/x\{4\}/y\{4\}/g 将4X替换为“y{4}” 我如何修改它,以便不必插入4个单独的y,而是“量化”单个y。解决方案似乎比它的价值更麻烦: :%s/w\{4}/\=repeat('y',4)/g OP写道: 使替换条款重复4 y的正确格式是什么 后跟find子句(反向引用)中的字符,即。 如何用4个y替换4个x 回答 hello yyyyxxxx there

如何量化vim搜索/替换表达式的替换部分

:%s/x\{4\}/yyyy/g 
将用4个y替换每次出现的4个x

:%s/x\{4\}/y\{4\}/g 
将4X替换为“y{4}”


我如何修改它,以便不必插入4个单独的y,而是“量化”单个y。

解决方案似乎比它的价值更麻烦:

:%s/w\{4}/\=repeat('y',4)/g
OP写道:

使替换条款重复4 y的正确格式是什么 后跟find子句(反向引用)中的字符,即。 如何用4个y替换4个x

回答

hello yyyyxxxx there yyyyxxxx end
将所有发生的
xxxx
替换为四个
y
,后跟一个反向引用

之前

hello xxxx there xxxx end
之后

hello yyyyxxxx there yyyyxxxx end

感谢@romainl提供了原始答案,感谢@Ingo Karkat提供了

这正是我想要的。我的示例简化了用4个y替换4个x。我的具体问题是在替换条款中使用了100个相同字符。感谢所有回应的人。这就是解决办法。我相信有人会这样做。前面的解决方案回答了我的问题。但是,要使替换子句重复4y,后跟find子句中的字符(反向引用),正确的格式是什么,即如何用4y和4x替换4x?我尝试了:%s/(x\{4\})/\=重复('y',4)\1/g。。。似乎不起作用。
%s/\(x\{4\}\)/\=重复('y',4)。子匹配(1)/g