如何在记事本++中自动连接某些文本前的行

如何在记事本++中自动连接某些文本前的行

我有一个包含大量多项选择题的文本文件。

问题格式需要为单行

像这样

问题
A.
B.
C.

但是我发现一些问题包含多行

像这样

疑问句
第二行。A
.
B.
C.

是否可以自动连接所有问题的行?

成为

疑问句第二行。A
.
B.
C.

并非所有问题都有多行,但所有问题后面都有相同的编号,即

ABC

提前致谢

答案1

  • Ctrl+H
  • 找什么:^(?![A-Z]\.).+\K\R(?![A-Z]\.)
  • 替换为:1 个空格
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

^               # beginning of line
(?![A-Z]\.)     # negative lookahead, make sure the line doesn't begin with a capital and a dot
.+              # 1 or more any character but newline
\K              # forget all we have seen until this position
\R              # any kind of linebreak (i.e. \r, \n, \r\n)
(?![A-Z]\.)     # negative lookahead, make sure the following line doesn't begin with a capital and a dot

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案2

做这个:

查找内容:^([^\r\n]+)\r\n([^\r\n]+)\r\nA.
替换为:\1 \2\r\nA.

[^\r\n]任何非行尾字符在哪里。

在“正则表达式”和“.匹配换行符”旁边打勾。

在此处输入图片描述

答案3

假设QuestionA, B, C项目符号区分大小写,那么您可以使用负前瞻组正则表达式搜索和替换。

例如:

  1. 启动 Notepad++搜索和替换按 [Ctrl]+H 键,或搜索菜单 >代替...
  2. 找什么:\r\n(?!Question|A\.|B\.|C\.)
  3. 替换为:<-- 空格
  4. 搜索选项:相符+环绕
  5. 搜索模式:正则表达式

本质上,上述正则表达式表示用空格字符替换问题 A.、B. 或 C. 之前未出现的任何 CR/LF——有效地将错误换行的行移动到问题行。

相关内容