从特定行中删除换行符的正则表达式

问题描述 投票:0回答:1

我有一个文本文件,每个段落独占一行。 有些段落在单词的开头被分割。 例如:

Books are an effective way to 
communicate across time, both from the past and into the future.

我可以在搜索中使用正则表达式(regex),并在 Notepad++ 或 Geany 中替换它们,在行的开头搜索小写字母并替换 (回车+换行)加一个空格。
问题是章节的副标题位于单词“or”之后,而单词“or”单独占一行。 例如:

Chapter 3 
The Importance of Reading 
or
Literature is the most agreeable way of ignoring life

使用该方法会将“或”行放在章节标题中,而不是单独一行。

我想要的是告诉正则表达式一行是否以小写字母开头以匹配它(替换前面的 带有空格)但如果该行是“或 ”.

regex text notepad++ geany
1个回答
22
投票

看起来您可以使用 lookarounds — 搜索:

\h*\R(?=[a-z])(?!or$)

并替换为空格。请参阅 regex101 上的 此演示(右侧说明)。

  • \h
    匹配水平空间
  • \R
    匹配任何换行序列
  • $
    匹配 行尾Notepad++ 默认值)

在 Notepad++ 的替换对话框中,确保选中 [•] 大小写匹配 [•] 环绕

© www.soinside.com 2019 - 2024. All rights reserved.