如果新行在 Notepad++ 中不以连字符开头,则用于合并行的正则表达式

Regex for merging lines if new line does not start with hyphen in Notepad++

我正在将一本书从 pdf 转换为记事本文本。在 pdf 中,行长度是固定的,结果一半的句子被转移到文本输出中的新行。

我需要 notepad++ 的正则表达式来执行以下操作:

如果新行不是以 - 开头,则将其合并到上一行并执行 (空 space)。

任何其他有助于使文本正确的选项都将被接受。

描述

\r?\n(?!-)

替换为: _ a space,而不是此处显示的下划线。

** 要更好地查看图像,只需右键单击图像并 select 在新 window

中查看

此正则表达式将执行以下操作:

  • 查找后面没有跟-
  • 的新行字符
  • 删除新行字符,然后将这些行合并在一起

例子

现场演示

https://regex101.com/r/jE2mI1/1

示例文本

-line 1
line 2
line 3
-line a
line b
line c

替换后

-line 1 line 2 line 3
-line a line b line c

说明

NODE                     EXPLANATION
----------------------------------------------------------------------
  \r?                      '\r' (carriage return) (optional (matching
                           the most amount possible))
----------------------------------------------------------------------
  \n                       '\n' (newline)
----------------------------------------------------------------------
  (?!                      look ahead to see if there is not:
----------------------------------------------------------------------
    -                        '-'
----------------------------------------------------------------------
  )                        end of look-ahead
----------------------------------------------------------------------