使用正则表达式删除文本的额外空行

时间:2014-07-17 06:21:53

标签: regex

我有这样的文字:

.class
{
   margin:5px;


   border: none;




   font-size: 12px;
}

然后我想删除额外的行,我使用以下正则表达式替换:

/^\s*$/

它选择所有空行,但会发生什么?它在另外两行之间至少保留一行,我的意思是,它产生以下文本:

.class
{
   margin:5px;

   border: none;

   font-size: 12px;
}

我需要的是一个正则表达式来删除两行之间的任何空格,并且只保留换行符,这与此类似:

.class
{
   margin:5px;    
   border: none;    
   font-size: 12px;
}

1 个答案:

答案 0 :(得分:3)

对于适用于Unix和Windows的内容,请使用:

搜索:(\r?\n)(?:\r?\n)+

替换:$1\1

<强>解释

  • (\r?\n)向第1组捕获可选的回车和换行符。这允许我们匹配Windows风格的\r\n序列或Unix风格的\n
  • (?:\r?\n)+匹配一个或多个其他换行符
  • 我们将匹配替换为第1组的内容