正则表达式为标题添加标签

时间:2016-11-06 02:47:05

标签: regex replace tags match srt

我有一个电影的字幕文件,如下所示:

2
00:00:44,687 --> 00:00:46,513
Let's begin.

3
00:01:01,115 --> 00:01:02,975
Very good.

4
00:01:05,965 --> 00:01:08,110
What was your wife's name?

5
00:01:08,943 --> 00:01:12,366
- Mary.
- Mary, alright.

6
00:01:15,665 --> 00:01:18,938
He seeks the spirit
of Mary Browning.

7
00:01:20,446 --> 00:01:24,665
Mary, we invite you
into our circle.

8
00:01:28,776 --> 00:01:32,834
Mary Browning,
we invite you into our circle.
....

现在我想只匹配实际的字幕文本内容,如

- Mary.
- Mary, alright.

或者

He seeks the spirit
of Mary Browning.

包括可能包含的特殊字符,数字和/或换行符。但我不想匹配时间字符串和序列号。

所以基本上我想把所有包含数字和特殊字符的行只用字母匹配,而不是在时间字符串和序列号等其他行上单独使用数字和特殊字符。

如何匹配标记<font color="#FFFF00">[subtitle text any...]</font>并将其添加到我与Regex帮助相匹配的每个字幕?

如下所示:

<font color="#FFFF00">He seeks the spirit
of Mary Browning.</font>

1 个答案:

答案 0 :(得分:0)

嗯,我只是仔细检查和分析,找出匹配所有字幕文字行的关键。

首先从任何字幕(.srt)文件开始,我必须删除不必要的“换行”字符,即\r

Find: \r+
Replace with:

(没有,即空字符)

然后我必须匹配那些不以数字&amp;开头的行。换行(即空白行),然后用自己的文本替换它们,文本用<font>标记包裹,颜色值如下:

Find: ^([^\d^\n].*)
Replace with: <font color="#FFFF00">\1</font>

(冒号后的空格仅用于更好的演示,不包含在代码中)。

希望这可以帮助每个人每天用字幕敲击。