Notepad ++中的正则表达式删除空行

时间:2012-10-18 13:18:41

标签: regex notepad++ replace

我有多个html文件,其中一些有一些空白行,我需要一个正则表达式来删除所有空行并只留下一个空行..所以它删除任何多于一个空行,并留下那些只是一个或没有(没有像在其中有文字)。

我还需要考虑不完全空白的行,因为有些行可能有空格或制表符(不显示的字符),所以我需要考虑这些行与正则表达式被删除只要它不止一行......

7 个答案:

答案 0 :(得分:9)

搜索

^([ \t]*)\r?\n\s+$

并替换为

\1

<强>解释

^         # Start of line
([ \t]*)  # Match any number of spaces or tabs, capture them in group 1
\r?\n     # Match one linebreak
\s+       # Match any following whitespace
$         # until the last possible end of line.

\1将包含第一行空格字符,因此当您将其用作替换字符串时,只会保留第一行空格(不包括末尾的换行符)。

答案 1 :(得分:9)

这对我notepad++ v6.5.1. UNICODE windows 7

有用

搜索:^[ \t]*\r\n

替换为:没有,留空

搜索模式:Regular expression.

答案 2 :(得分:2)

搜索(\r?\n(\t| )*){3,},替换为\r\n\r\n,选中“正则表达式”和“。匹配换行符”。

使用Notepad ++ 6.2进行测试

答案 3 :(得分:2)

这将替换包含空格(或不包含空格)的连续空白行,并将其替换为一个新行。

搜索 (\s*\r?\n){3,}

替换为 \r\n

答案 4 :(得分:2)

enter image description here

您可以自己找到需要替换的内容 \ n \ n OR \ n \ r \ n或\ r \ n \ r \ n等...现在您甚至可以根据需要修改正则表达式^([ \t]*)\r?\n\s+$

答案 5 :(得分:1)

我测试了上述任何建议,总是太少或太多被删除。所以要么你没有空白行,其中至少有一个是事先删除或删除不够(留下空白等)。不幸的是我还没有写评论。使用6.1.5进行测试并更新到6.2并再次测试。根据mayn文件的不同,我建议使用

Edit->Blank Operations->Trim trailing whitespace

其次是 Ctrl + A

TextFX -> TextFX Edit -> Delete surplus blank lines

我尝试录制的宏无法正常工作。甚至还有一个宏来删除尾随空格( Alt + Shift + S ,请参阅设置|快捷键映射器... |宏)。有一个

Edit->Blank Operations->Remove unnecessary EOL and whitespace

但删除每个EOL并将所有内容放在一行中。

答案 6 :(得分:0)

我查找了$counter = 1; foreach ($row as $r){ if($counter<=8) { echo '<tr> <td>'.$r['number'].'</td> <td>$ <span>'.$r['price'].'</span></td> </tr>'; } else { echo '<tr> <td>Number '.$counter.'</td> <td>$ <span>'.$r['price'].'</span></td> </tr>'; } $counter++; //here incrementing the variable . } 并点击了“替换为”文本框中没有任何内容(空白)的“全部替换”。