如何将一组行附加到另一组行之后?

如何将一组行附加到另一组行之后?

如何转换此文本:

Chapter 1. Horse
Chapter 2. Orange
Chapter 3. Computer
/1
/2
/3

Chapter 1. Horse/1
Chapter 2. Orange/2
Chapter 3. Computer/3

我不确定正则表达式在这里是否有用。

答案1

以下是完成这项工作的方法:

  • Ctrl+H
  • 找什么:^(?:(Chapter (\d+).+)|/\d+)$
  • 用。。。来代替:(?1$1/$2:)
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

^                   # beginning of line
  (?:               # non captre group
    (               # start group 1
      Chapter       # literally Chapter followed by a space
      (\d+)         # group 2, 1 or more digits
      .+            # 1 or more any character but newline
    )               # end group 1
  |               # OR
    /\d+            # a slash followed by 1 or more digits
  )                 # end group
$                   # end of line

替代品:

(?1         # if group 1 exists
  $1        # take it
  /         # a slash
  $2        # content of group 2
  :         # else, nothing
)           # endif

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案2

这无法通过 Regex 或 Notepad++ 来完成。

但有一个简单的解决方案。

首先将文件保存为 .csv,然后使用 Microsoft Excel 或其他电子表格编辑器(例如 OpenOffice Calc)打开 CSV 文件。选择第二组并将其移动到第一组旁边的第二列,第二组的数据应该放在第二列中。

保存文件。

现在,在 notepad++ 中打开该文件并使用搜索/替换将其恢复为您想要使用的格式。

相关内容