问题描述
我有一个与视频相关的空白SRT文件,时间码已经在转录软件平台中设置(即每个字幕的边界已经设置,但字幕还没有写下来),我上传了视频到 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
但是有一个问题,因为字幕中没有文字,youtube 无法识别时间码,所以当 srt 上传到 youtube 中的视频时没有任何反应。
为了解决这个问题,我在每个时间代码下方的空行中放置了一个非字母数字字符(通常是“-”)。
带破折号的 SRT 文件:
1
00:00:01,64
-
2
00:00:05,18
-
3
00:00:07,03
-
4
00:00:11,92
-
5
00:00:16,11
-
这是一个非常手动的过程,可能需要很长时间。必须有一种方法可以在 Notepad++ 之类的东西中使用查找和替换,然后简单地添加破折号。我正在尝试使用正则表达式来做到这一点,但遇到了问题。
^$ 正确定位空行,但是如果我简单地用“-”替换它们,我会得到:
1
00:00:01,64
-
-
2
00:00:05,18
-
-
这是不可接受的,因为它破坏了 SRT 的语法,当将这样的 SRT 上传到 youtube 时,它认为内容是单个字幕。因此,我只需要在第一个空行中放置一个破折号,即时间码正下方的那个。
我不知道如何只选择每对空行中的第一个空行。任何解决方案将不胜感激。
解决方法
您可以匹配行尾的特定格式,后跟换行符并直接断言字符串的末尾,然后替换为完整匹配和-
查找内容
-->\h+\d\d:\d\d:\d\d,\d+\R$
替换为
$0-
或者仅匹配逗号、数字和换行符后跟锚点的短变体:
,\d+\R$