代码之家  ›  专栏  ›  技术社区  ›  Sanghyun Lee

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

  •  1
  • Sanghyun Lee  · 技术社区  · 8 年前

    我想更换这样的东西,这很容易

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

    我可以在vim中简单地替换它 :%s/-/=/g 。

    但是,我想要的是替换以regex开头的字符 ^ 也就是说

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

    我可以用regex替换这样的东西吗?我正在使用vim,但欢迎使用任何解决方案。

    1 回复  |  直到 8 年前
        1
  •  4
  •   rwp    8 年前

    我不确定我是否完全理解您需要什么,但如果您试图将替换限制为以“-”开头的行,则可以执行以下操作:

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

    这将全局(第一个“g”)搜索以“-”开头的行,然后在该行内全局(第二个“g”)将“-”替换为“=”。