如何在 Notepad++ 中将所有“段落”合并为一行?

如何在 Notepad++ 中将所有“段落”合并为一行?

假设我有一个这样的文件:

This is some text
and there are line breaks.
but this is still a paragraph.

And now we have another paragraph.
What will you do about it?

我在使用“查找/替换”将由空白行分隔的文本块转换为一行时遇到了麻烦,如下所示:

This is some text and there are line breaks. but this is still a paragraph.

And now we have another paragraph. What will you do about it?

看起来正则表达式应该有一个前瞻性参数,但我不确定它是如何工作的。

答案1

  • Ctrl+H
  • 找什么:[^\r\n]\K\R(?!\R)
  • 替换为: #一个空格
  • 查看 环绕
  • 查看 正则表达式
  • Replace all

解释:

[^\r\n]         # any character that is not a linebreak
\K              # forget it
\R              # any kind of linebreak (i.e. \r, \n, \r\n)
(?!\R)          # negative lookahead, make sure we haven't a linebreak after

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案2

这似乎或多或少有效:

  • 寻找\r\n(\r\n)?
  • 用。。。来代替\1\1
  • \1的是(可选)捕获组所匹配的内容(\r\n)?
    • 对于单行换行来说,这不算什么,因此只会添加一个空格。
    • 对于双换行,这是第二个换行,并且是双重的。

最后结果:

在此处输入图片描述

每个段落末尾都会有一个额外的空格,这可能不是我们想要的。通过另一轮“查找和替换”可以轻松删除它们:查找\r\n并替换为\r\n

相关内容