简体中文

如何从文本中删除换行符

将文本粘贴到文本工具包中。如果您想要一个连续的块,请将查找和替换切换到正则表达式模式,找到 \s*\n\s* 并将其替换为单个空格。

如果要保留段落分隔符,请先使用修剪行,然后找到 (?<!\n)\n(?!\n) 并替换为空格。该模式匹配两边都没有换行符的换行符(即段落中间换行),并单独保留段落之间的双换行符。

为什么文本到达时带有硬换行符

通常的来源是从 PDF 中复制出来。 PDF 没有段落 - 它具有位于页面上的文本 - 因此副本会在视觉行结束的地方插入换行符。在页面上占据六行的段落以六行文本形式到达。

纯文本电子邮件是另一个常见来源。较旧的邮件客户端将外发邮件硬包装为 72 或 76 个字符,并且引用的回复会无限期地保留这些中断。

其显着特征是断点位于句子中间,大致在同一列,而不是句子末尾。这就是它们可以机械移除的原因:真正的段落分隔符由空行分隔,而段落中间的换行则不然。下面的一切都取决于这种差异。

保留段落:单一模式方法

该模式如下:一个换行符,前面没有换行符,后面也没有换行符。段落中间换行匹配;双断点中的每个换行符的一侧都有一个换行符,因此两者都不匹配。

如果该工具拒绝该模式并出现错误,则说明您的浏览器不支持lookbehind。在这种情况下,请使用更简单的 \s*\n\s* 替换来连接所有内容,并在将文本粘贴到的任何内容中重新引入段落分隔符。

  1. 按修剪线。这会去除每一行的前导和尾随空白,因此段落分隔符正好变成两个换行符,而不是一个换行符、一个杂散空格和另一个换行符。
  2. 勾选正则表达式。
  3. 查找 (?<!\n)\n(?!\n) 并替换为单个空格。按全部替换。
  4. 检查计数。它应该大致匹配换行数,并且应该比总行数小大约段落数。

将所有内容连接到一个块中

对于引用、搜索查询或进入单个字段的任何内容,您根本不需要保护段落。

正则表达式模式,找到 \s*\n\s* 并替换为单个空格。两侧的 \s* 同时吸收缩进和尾随空格,因此之后不需要单独的双空格清理。

Windows 行结尾和其他错误

  • 如果 \n 上的替换报告为零,或留下杂散字符,则文本具有 Windows 行结尾。找到\r并先将其替换为空;将 CRLF 转换为 LF,然后上面的模式就会起作用。
  • 带连字符的单词跨行分开——“inter-”然后是“national”——连接后变成“international”。找到“-”并替换为任何内容,但首先读取计数,因为该模式也匹配散文中的合法破折号。
  • 如果一行以空格结尾并且您使用了lookbehind模式,则双空格可以保留。找到两个空格,替换为一个,然后运行两次。
  • 段落之间没有空行的文本没有要保护的信号。没有任何模式可以恢复从未编码的段落边界,您必须手动重新插入它们。

关于该工具的正则表达式模式的两件事

模式在守卫内部编译。无效的模式会给您一条错误消息,并使您的文本保持原样 - 单独的开括号是打字时的正常中间状态,它不应该破坏您的工作。

模式是使用全局标志编译的,没有多行或点标志。因此,替换总是适用于任何地方;该点与换行符不匹配; ^ 和 $ 锚定整个文本而不是每一行。要按行操作,请显式匹配换行符,这就是上面的模式的作用。

查找和替换字段是单行输入。您可以使用 \n 匹配换行符,但不能插入换行符 — 在替换字段中输入的 \n 将作为反斜杠后跟 n 插入。这就是为什么上面的方法永远不需要放回换行符。

工作示例:从 PDF 复制出两个段落

粘贴的文本在每打印行之后都有一个硬中断,并且在两个段落之间有一个空行。使用 / 作为换行符,看起来像这样:

“委员会周二开会审查/3月份提交的提案。一些成员/对时间表提出了担忧。//修订后的版本将在/下一次会议之前分发。”

总共有 5 个换行符:四个换行符和一个段落分隔符写为两个连续的换行符。五人中的四人应该去。

  1. 按修剪线。
  2. 勾选Regex,找到(?<!\n)\n(?!\n),替换为空格,全部替换。
  3. 读取报告的计数。

结果: 该工具报告 3 个替换(三个中间段落换行),结果是两个段落,每个段落位于一个连续行上,仍然由空行分隔。使用 \s*\n\s* 会报告 4 并将两个段落合并为一个,这是引用的正确答案,但这里是错误的答案。

打开工具

清理文本工具包中的文本

文字和正则表达式查找和替换,带有撤消历史记录和每一步后的替换计数。您粘贴的任何内容都不会发送到任何地方。

这不包括什么

  • 这是查找和替换,而不是回流。它无法区分中间句子换行和故意短行(例如地址块、诗句或项目符号列表)。
  • 替换字段无法插入换行符,因此任何需要将换行符放回原处的技术都必须在其他地方完成。
  • 后视模式需要支持后视断言的浏览器。较旧的浏览器会报告无效模式错误,而不是默默地失败。
  • 处理在主线程上运行,因此非常大的文档可能会在转换期间短暂暂停界面。
  • 撤消仅限于最近 50 次操作。
  • 两次访问之间不会保存任何内容。根据设计,重新加载页面会放弃您的工作。