【问题标题】:Regex to combine 2 lines of text into 1正则表达式将 2 行文本合并为 1
【发布时间】:2020-12-24 05:45:50
【问题描述】:

我有以下脚本

141
00:07:13,000 --> 00:07:16,680
So when you access a
web page such as google.com,

142
00:07:16,751 --> 00:07:20,824
really what you're
accessing is google.com/

143
00:07:20,824 --> 00:07:22,872
and the forward slash there just means

144
00:07:22,780 --> 00:07:26,180
this is the homepage of the site.

我想将两行文本合并为 1 行。例如:

really what you're
accessing is google.com/

看起来像really what you're accessing is google.com/

我正在尝试通过记事本实现这一目标。这是我创建的正则表达式:\D\r\n\D,我将其替换为空格。

运行时,输出为really what you'r ccessing is google.com

缺少第一行的最后一个字符和第二行的第一个字符。

谁能帮我解决这个问题?

【问题讨论】:

  • 试试这个:在Find What 中使用(\D)\r\n(\D)。在Replace with 中使用$1 $2。看看有没有帮助。
  • 这行得通!谢谢 我还可以在此之后添加一些内容以获得空行吗?
  • 我会将其添加为答案,您可以将其标记为已接受以结束您的问题
  • 是的,你可以通过输入Find what这个^(\d{3})Replace with这个\r\n$1来添加一个空行你已经运行了第一组替换。它可能并不完美,但您可以根据自己的喜好调整该解决方案。
  • 您的问题有 2 个答案。您能否接受其中一个答案来结束您的问题?

标签: regex notepad++


【解决方案1】:

除了可以匹配换行符的\D,您还可以使用[^\d\r\n] 匹配除数字或换行符之外的任何字符,并将换行符保留在其后面。

然后使用\R 匹配换行符序列,同时断言左侧和右侧存在[^\d\r\n]

在替换中使用空格。

(?<=[^\d\r\n])\R(?=[^\d\r\n])

Regex demo

【讨论】:

    【解决方案2】:

    在 Notepad++ 中,您可以这样做:

    第一项是(\D) 称为$1,第二项(\D) 称为$2。您使用正则表达式的方式,\D 都被删除了。在我的正则表达式替换中,我放置了最后一个字符并在它们之间添加一个空格。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多