如何替换notepad++中的空行?我尝试了一个发现和替换与空行在发现,并没有在替换,但它不工作;它可能需要正则表达式。


当前回答

我没有看到组合的答案,所以搜索^\s+$并替换为{nothing}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line

其他回答

如果空行包含制表符或空格,这显然不起作用。许多网页(例如http://www.guardian.co.uk/)包含这些白线,这是错误的HTML编辑器的结果。

使用正则表达式删除空白,如下所示:

更改模式:[\t]+$ 到什么。

[\t]匹配制表符或空格。'+'匹配一个或多个出现,'$'标记行结束。

然后使用notepad++/textFX删除单个或额外的空行。 请确保这些空行在给定的上下文中没有意义。

您可以搜索以下正则表达式:^(?: \ [t] * (?): \ r ? \ n | \ r)) +,代之以空字段

按ctrl + h(替换快捷键)。 在Find what区域中,键入^\R(用于精确的空行)或^\h*\R(仅用于带空格的空行)。 将Replace with区域保留为空。 检查“环绕”选项。 选择正则表达式搜索方式。 单击“全部替换”按钮。

这个模式在notepad++ v8.1.1中进行了测试

它替换每行文本前后的所有空格/制表符/空行。

它不应该干扰文本中间的任何东西。

Find: ^(\s|\t)+|(\s|\t)+$

Replace: leave this blank


Before:
_____________________________________
\tWORD\r\n
\r\n
\tWORD\s\tWORD\s\t\r\n
\r\n
\r\n
WORD\s\s\tWORD\t\sWORD\s\r\n 
\t\r\n
\s\s\s\r\n
WORD\s\sWORD\s\s\t\r\n

____________________________________


After:
_____________________________________
WORD\r\n
WORD\s\tWORD\r\n
WORD\s\s\tWORD\t\sWORD\r\n
WORD\s\sWORD
_____________________________________

你可以按照下面截图所示的技巧进行操作:

找到什么:^\r\n 替换为:保持此为空 搜索方式:正则表达式 环绕:选定

注意:对于*nix文件只查找\n