正则表达式替换特定条件下的重复字符

时间:2018-03-18 16:09:25

标签: regex vim

我想替换这样非常容易的东西

----- -> =====

我可以在vim中将其替换为:%s/-/=/g

但是,我想要的是替换以正则表达式^开头的字符,这意味着

-----  ->  =====
---    ->  ===
 --    ->   --    // stays the same
abc -  ->  abc -  // stays the same

我可以用正则表达式替换这样的东西吗?我使用vim,但任何解决方案都会受到欢迎。

1 个答案:

答案 0 :(得分:4)

我不确定我到底知道你需要什么,但如果你试图将替换限制在以' - '开头的行,那么你可以做点什么像这样:

g/^-/s/-/=/g

这将全局(首先' g)搜索以' - '开头的行,然后在该行内全局搜索(第二个' g')替换' - '与' ='。