我有多个HTML文件,其中一些有空白行,我需要一个正则表达式来删除所有空白行,只留下一个空白行。因此,它会删除超过一个空白行的任何内容,并保留那些只有一个或零个空白行(没有文本的行)。
我还需要考虑到不完全空白的行,因为有些行可能包含空格或制表符(不显示的字符),所以只要多于一行,我需要用正则表达式将这些带有空格或制表符的行也删除。
我还需要考虑到不完全空白的行,因为有些行可能包含空格或制表符(不显示的字符),所以只要多于一行,我需要用正则表达式将这些带有空格或制表符的行也删除。
搜索
^([ \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
将包含第一行的空白字符,因此当您将其用作替换字符串时,只有第一行的空白符将被保留(不包括末尾的换行符)。
这在我的电脑上成功运行:notepad++ v6.5.1. UNICODE windows 7
查找内容:^[ \t]*\r\n
替换为:什么也不要留空
查找模式:正则表达式。
您可以自行查找需要替换的内容,例如\n\n、\n\r\n或\r\n\r\n等等...现在您甚至可以根据需要修改正则表达式^([ \t]*)\r?\n\s+$
。
搜索(\r?\n(\t| )*){3,}
,用\r\n\r\n
替换,勾选"正则表达式"和". 匹配换行符"。
在Notepad++ 6.2中测试过。
(\s*\r?\n){3,}
替换为:
\r\n
\r\n
,而不是\n\r
。 - Tim PietzckerEdit->Blank Operations->Trim trailing whitespace
按下 Ctrl+A 然后
TextFX -> TextFX Edit -> Delete surplus blank lines
Edit->Blank Operations->Remove unnecessary EOL and whitespace
但这将删除每个行末结束符并将所有内容放在一行中。
我在代码中查找了 ^\r\n
并在 "替换为" 文本框中什么都不输入,然后点击了 "全部替换"。
编辑 > 行操作 > 删除空行(包含空格字符)
或者
编辑 > 行操作 > 删除空行
因此,不需要使用正则表达式来执行此操作。但是,这仅适用于一次处理一个文件。