使用功能块删除空行

时间:2013-11-28 05:48:07

标签: regex notepad++

你能建议我使用正则表达式去除func [func {remove empty lines}]块中的空行。我正在使用notepad ++

有一些混乱:

FUNC1()
{
int x;

int y;
CallFunC();

}

FUNC2()
{
int x;
int y;

CallFunC();

}

FUNC3()
{
int y;
int x;

CallFunC();

}

FUNC4()
{
int y;
int x;
CallFunC();
}

考虑我有上面的场景。我需要从这些函数中删除空行

提前致谢

2 个答案:

答案 0 :(得分:1)

Ctrl + h ,这将打开查找和替换窗口

现在执行以下操作:

  1. 检查环绕框和扩展框,
  2. 查找内容框中,添加 \n\r
  3. 替换为框中,不加任何内容
  4. 然后全部替换
  5. 再次,在查找内容框中,添加 }\r\n
  6. 替换为框中,添加 }\r\n\r\n
  7. 然后全部替换
  8. 这应该可以胜任。

    我已经把样本输入和我在两次替换后得到的输出。

    示例输入:

    FUNC1()
    {
    int x;
    
    int y;
    CallFunC();
    }
    FUNC2()
    {
    int x;
    int y;
    
    CallFunC();
    
    }
    
    FUNC3()
    {
    int y;
    int x;
    
    CallFunC();
    
    }
    
    FUNC4()
    {
    int y;
    int x;
    CallFunC();
    }
    

    第一次全部替换后:

    FUNC1()
    {
    int x;
    int y;
    CallFunC();
    }
    FUNC2()
    {
    int x;
    int y;
    CallFunC();
    }
    FUNC3()
    {
    int y;
    int x;
    CallFunC();
    }
    FUNC4()
    {
    int y;
    int x;
    CallFunC();
    }
    

    第二次全部替换后:

    FUNC1()
    {
    int x;
    int y;
    CallFunC();
    }
    
    FUNC2()
    {
    int x;
    int y;
    CallFunC();
    }
    
    FUNC3()
    {
    int y;
    int x;
    CallFunC();
    }
    
    FUNC4()
    {
    int y;
    int x;
    CallFunC();
    }
    

答案 1 :(得分:1)

怎么样:

找到:(?<!\})\n\n
替换为:\n

如果您正在处理Windows文件,请将\n更改为\r\n

找到:(?<!\})\r\n\r\n
替换为:\r\n

你也可以使用:

找到:(?<!\})\R\R
替换为:\r\n

只有在它们之前没有\n\n的情况下才会用一个\n替换两个换行符},这样它就会在函数结束后离开换行符。