【问题标题】:Selecting first line of each 3 line group选择每 3 行组的第一行
【发布时间】:2019-06-05 07:41:04
【问题描述】:

我有一个由 3 行组成的文本文档。我想把这 3 行中的每一行放在一行上。所以输入是

A1 \n
B1 \n
C1 \n
A2 \n
B2 \n
C2 \n

(每行一个字母数字)

应该是

A1 B1 C1
A2 B2 C2

文本编辑器的选择并不重要。我尝试使用记事本++。

【问题讨论】:

  • 换行前真的有空格吗?
  • 好吧,抱歉,实际上每一行都是一个带有空格和标点符号、斜线等的短语。
  • edit your question 准确展示您拥有的和想要的。

标签: text notepad++


【解决方案1】:

您可以在 Notepad++ 的正则表达式模式下尝试以下查找和替换:

Find:    ([A-Z][0-9])\s*\R([A-Z][0-9])\s*\R([A-Z][0-9])\s*\R
Replace: $1 $2 $3\n

Demo

该模式一次针对三行,捕获过程中的字母数字术语。然后,它替换为这三个捕获组,以空格分隔。

请注意,可能存在我的回答无法处理的极端情况。如果文件中的行数不是三的整数倍,那么文件末尾可能有一两行未处理的行。实际上,唯一的问题是两行,因为一个未处理的行已经是正确的格式。

【讨论】:

  • 谢谢,这适用于简单的 A1 B1 C1 情况,但在我的情况下,每一行都是一个短语..
  • 太好了,这将是另一个问题的好话题,但这不是你在这里问的。
  • 如果您想对整行执行此操作,请在模式上找到 (.*?)\n(.*?)\n(.*?)\n 并执行相同的替换 $1 $2 $3\nCheck the updated demo.
  • 它适用于演示,但是当我将其粘贴到搜索/替换(并选择了 reg exp)时,它什么也找不到。你知道为什么吗?
  • 尝试使用\R 而不是\n 作为行尾。也许你在 Windows 上,或者文件出于某种原因正在使用 CRLF。
猜你喜欢
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
  • 2012-10-28
相关资源
最近更新 更多