代码之家  ›  专栏  ›  技术社区  ›  schlebe

如何使用Regex减少代码的边距(=空格数)?

  •  0
  • schlebe  · 技术社区  · 1 年前

    最近,在 Notepad++ ,我想减少行开头的空格数。

    我搜索了一个 Regular Expression ,但我找不到。

    在的数组(=选项卡)上 记事本++ ,我有以下几行

    <html>
        <body>
            <p>ligne normale</p>
            <p>ligne      with    2 spaces  </p>
    

    并且我只想减少(=除以2个空格)'<'之前的空格所有行上的字符。

    等待结果如下

    <html>
      <body>
        <p>ligne normale</p>
        <p>ligne      with    2 spaces  </p>
    

    我试着跟随 Regex 和字符串替换

    搜索: \s{2}(?<=^\s*)
    替换: (=一个空格)

    但是 记事本++ 拒绝这个 Regex !

    然后我测试了同样的 Regex 在使用PCRE版本7.8的C++程序上。 表示look-behind只能包含固定长度的字符串!

    有Regex可以做这项工作吗?

    PS:下面的Regex使用了一个前瞻性的工作。。。部分!

    \s{2}(?=(\s{2})*<)
    

    最后一行的最后2个空格,就在最后一行之前

    不在边缘,在必须保留的时候被移除!
    1 回复  |  直到 1 年前
        1
  •  1
  •   Amadan    1 年前

    我还没有在Notepad++上尝试过,但这只使用了非常基本的正则表达式功能,以便将起始行空格的数量减半:

    Find what:      ^(\s+)\1
    Replace with:   $1