如何在 Notepad++ 中每 3 行合并一行?

如何在 Notepad++ 中每 3 行合并一行?

像这样:

A
B
C

D
E
F

G
H
I

对此:

A     B     C

D     E     F

G     H     I

这是一个 2500 行的文件,所以我不能只按 ctrl+j 键。

答案1

在此处输入图片描述

Ctrl+键H访问替换对话框,勾选正则表达式,然后输入上述表达式。文本如下:

找什么: (.+)\r\n(.+)\r\n(.+)
用。。。来代替: \1\t\2\t\3\t(最后一个\t是可选的;如果删除它,您将不会在视觉上注意到任何差异,除非您希望该行以制表符结尾)

\r\n在“查找内容:”中替换为:

  • \n如果你正在编辑带有 UNIX 样式行尾的文件(仅限换行)
  • \r\n如果您正在编辑具有 Windows 样式行尾的文件(回车符后跟换行符;在这种情况下,您不需要修改原始正则表达式)
  • \r如果你正在编辑一个带有传统 Mac 风格行尾的文件(仅回车符)

您可以通过检查 Notepad++ 窗口底部的状态栏来找出您使用的行尾。它会显示“Dos\Windows”等。


如果你的文件行尾不一致(这通常是一件坏事,但并非不可能)并且您想一次性替换所有可能类型的换行符:

找什么: (.+)(\r|\n)+(.+)(\r|\n)+(.+)
用。。。来代替: \1\t\3\t\5\t

您可以了解有关正则表达式的更多信息这里

答案2

这将用制表符替换所有换行符(前面或后面没有另一个换行符)。

  • Ctrl+H
  • 找什么:[^\r\n]\K\R(?!\R)
  • 用。。。来代替:\t
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

[^\r\n]     : not a line break
\K          : forget all we have seen until this position
\R          : any kind of line break
(?!\R)      : negative lookahead, make sure we don'thave a line break after

替代品:

\t          : a tabulation

给定示例的结果:

A   B   C

D   E   F

G   H   I

相关内容