我有一个包含大量多项选择题的文本文件。
问题格式需要为单行
像这样
问题
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
答案3
假设Question
和A, B, C
项目符号区分大小写,那么您可以使用负前瞻组正则表达式搜索和替换。
例如:
- 启动 Notepad++搜索和替换按 [Ctrl]+H 键,或搜索菜单 >代替...
- 找什么:
\r\n(?!Question|A\.|B\.|C\.)
- 替换为:
<-- 空格
- 搜索选项:相符+环绕
- 搜索模式:正则表达式
本质上,上述正则表达式表示用空格字符替换问题 A.、B. 或 C. 之前未出现的任何 CR/LF——有效地将错误换行的行移动到问题行。