Regular-Expression
在 Vim 中的其他兩個字元之間插入一個字元
如果我用正則表達式在 vim 中搜尋模式,然後想插入一些東西而不改變正則表達式匹配的內容,我該怎麼辦?例如,在一個文件中
foo123 bar4567 12zw231xy
我想在每個非數字後跟一個數字之間插入一個換行符,從而生成如下文件:
foo 123 bar 4567 12zw 231xy
:%s/\(\D\)\(\d\)/\1\r\2/g
\(\)
是擷取組。其中捕捉到的內容由\1
和複製\2
。\D
是非數字,\d
是數字。\r
成為 Vim 中的換行符。這通過魔術模式正則表達式得到簡化,啟用
\v
::%s/\v(\D)(\d)/\1\r\2/g