正则表达式将字符插入空白 SRT

regex insert character into blank SRT

我有一个视频关联的空白SRT文件,时间码已经在转录软件平台上设置好了(即每个字幕的边界都设置好了,但字幕还没有写下来),我已经上传了将视频上传到 youtube,现在我想将空白的 SRT 文件上传到它,以便有人可以使用 YouTube 的 transcription/translation 平台转录它。

空白 SRT:

1
00:00:01,05 --> 00:00:04,64


2
00:00:05,02 --> 00:00:07,18


3
00:00:07,81 --> 00:00:11,03


4
00:00:11,04 --> 00:00:15,92


5
00:00:16,35 --> 00:00:17,11

但是有一个问题,因为字幕中没有文字,youtube 无法识别时间码,所以当 srt 上传到 youtube 中的视频时没有任何反应。

为了解决这个问题,我在每个时间代码下方的空白行中放置了一个非字母数字字符(通常是“-”)。

带破折号的 SRT 文件:

1
00:00:01,05 --> 00:00:04,64
-

2
00:00:05,02 --> 00:00:07,18
-

3
00:00:07,81 --> 00:00:11,03
-

4
00:00:11,04 --> 00:00:15,92
-

5
00:00:16,35 --> 00:00:17,11
-

这是一个非常手动的过程,可能需要很长时间。必须有一种方法可以在 Notepad++ 之类的东西中使用查找和替换并简单地添加破折号。我正在尝试使用正则表达式来做到这一点,但 运行 遇到了问题。

^$ 正确定位空白行,但是如果我只是用“-”替换它们,我会得到:

1
00:00:01,05 --> 00:00:04,64
-
-
2
00:00:05,02 --> 00:00:07,18
-
-

这是不可接受的,因为它破坏了 SRT 的语法,当将这样的 SRT 上传到 youtube 时,它​​认为内容是单个字幕。因此,我只需要在第一个空行中放置一个破折号,即时间码正下方的空行。

我不知道如何只 select 每对空行中的第一个空行。任何解决方案将不胜感激。

可以在行尾匹配特定格式后跟一个换行符,直接断言字符串的结尾,然后替换为全匹配和-

找什么

-->\h+\d\d:\d\d:\d\d,\d+\R$

替换为

[=11=]-

Regex demo

或者仅匹配逗号、数字和换行符后跟锚点的短变体:

,\d+\R$