我有为YouTube视频之一自动生成的字幕文件。
这里有4篇演讲。每个语音都有数字,时间,第一行和第二行。
我想删除每个时间段中该行的每个第一个文本。我需要它,因为当前当有新文本出现时,我会看到旧文本和新文本。换句话说,旧文本在上升,而新文本则从底部开始。我只想看看新的。
1
00:00:02,880 --> 00:00:06,550
[empty]<--to be removed
[Music]
2
00:00:06,550 --> 00:00:06,560
[Music]<--to be removed
[empty]
3
00:00:06,560 --> 00:00:09,290
[Music]<--to be removed
my name is Maria and I'm a technical
4
00:00:09,290 --> 00:00:09,300
my name is Maria and I'm a technical<--to be removed
[empty]
我尝试了什么?我只能选择:数字行,时间行和第一个文本行。 (?=
regexp )
不适用于我的查询。这是我的查询:
(^\d+$\n.+$\n)
^\d+$
-以数字元素开头和结尾\n.+$
-选择新行,选择所有元素,直到行尾为止\n
-再选择一行,但不要选择元素答案 0 :(得分:1)
您可以使用以下正则表达式:
^(\d+\r?\n.*?-->.*)\r?\n.+
替换为$1
。参见regex demo。
详细信息
^
-一行的开头(\d+\r?\n.*?-->.*)
-捕获组1:
\d+
-1个以上数字\r?\n
-CRLF或LF换行符.*?-->.*
-具有-->
的行(这是为了使匹配更加安全,如果您确定没有字幕文本行,那么.+
也可以这样做)由数字组成)\r?\n
-CRLF或LF .+
-除换行符以外的1个或更多字符。