【问题标题】:Notepad ++: Cannot remove empty line记事本++:无法删除空行
【发布时间】:2014-12-13 09:14:25
【问题描述】:

我的 txt 文件如下所示:

line 1    

line3

我正在尝试删除空行。我在 Notepad++ 的替换窗口中选择“扩展”搜索模式并输入 \r\n\n\r 但无法匹配。那么,该怎么做呢?我已经成功地从很多文件中删除了空行,但现在我无法删除这一行。

【问题讨论】:

  • 这是记事本++的一个已知问题,也可以通过正则表达式多行匹配...
  • 可能,只是\r\n 有帮助吗? Windows 使用\r\n、Linux \n 和Mac \r 来表示一行的结束。在不同操作系统之间交换文本文件可能会出现此问题。 NP++ 有一个显示所有不可见字符的选项,这有助于识别它。顺便说一句:对于旧行式打印机,回车(将打印头向左移动)和换行(移动纸张)是两个独立的命令。因此,Win 的做法是正确的。

标签: regex notepad++ line


【解决方案1】:

在文件中查找窗口尝试这个正则表达式替换操作:

  • 查找内容:\R*(\R)

  • 替换为:\1


编辑:要删除最后一个 CR/LF,请运行 两次(由于某些特殊的 CR/LF 处理原因,每次运行只消耗一个字符):

  • 查找内容:^(.*)\R+$

  • 替换为:\1

  • 模式:正则表达式

  • 选项. matches newline开启

【讨论】:

  • 它工作但它没有删除最后一个空行(最后一个空行是最后一行)
  • @Ban - 运行附加部分两次 - 请参阅编辑
  • 像魅力一样工作!非常感谢你,miroxlav!
【解决方案2】:

试一试:

查找内容:^\R
替换为:<NOTHING>

\R 代表任何换行符,\n\r\r\n

可能是你的行中有空格,在这种情况下:

查找内容:^\s*\R
替换为:<NOTHING>

【讨论】:

  • 我使用的是 6.6.9 记事本++
  • 这真的很奇怪。使用相同的版本对我来说效果很好。
  • 你好,我输入 \R 并且它有效,但它删除了所有断行。我只想删除空行
  • @Ban:当然可以,但试试我上次的编辑:^\s*\R
【解决方案3】:

菜单编辑 > 行操作 > 删除空行怎么样?在这种情况下,您可以使用内置函数吗?

【讨论】:

  • 嗨,我没有看到删除空行。另外,我有很多文件。所以,我需要正则表达式代码来替换。
  • 谢谢!它就像一个魅力。但是,我有很多文件。因此,我无法打开每个文件并删除空行。我需要正则表达式代码来删除许多文件的空行。
  • @Ban,好的,我还为你添加了regex-based answer
猜你喜欢
  • 2016-05-07
  • 2014-12-28
  • 2021-08-02
  • 2014-03-03
  • 2011-04-26
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多