【字幕组的日常】srt字幕格式错误 需要批量添加换行符 如何用正则表达式来批量查找和替换?

错误格式

【字幕组的日常】srt字幕格式错误 需要批量添加换行符 如何用正则表达式来批量查找和替换?_第1张图片
这……到底发生了什么才会把稿子做成酱紫= =.png

一般心态不好的校对,看到萌新这种错误简直吐血,基本让他退回重做

【字幕组的日常】srt字幕格式错误 需要批量添加换行符 如何用正则表达式来批量查找和替换?_第2张图片
正确的srt格式的中英字幕大概长这样.png

从结果来倒推,这时候可试试批量替换,修改效率高。
我使用的是Notepad++(Mac可以用Textwrangler),打开"显示所有字符",我们所见的是这样的,我框出了需要修改的地方:

【字幕组的日常】srt字幕格式错误 需要批量添加换行符 如何用正则表达式来批量查找和替换?_第3张图片
image.png

第一步,添加00在字幕开始时间

查找
Dialogue: 0,0:00:00.00,0:00:00.00,Default,00,0,0,0,,(0\d)
替换为
00:\1
注:也就是保留括号内的内容而且在其之前加上"00:"

第二步,把所有框中的"Dialogue: 0,0:00:00.00,0:00:00.00,Default,00,0,0,0,,"的前缀删除

查找
Dialogue: 0,0:00:00.00,0:00:00.00,Default,00,0,0,0,,

替换为
(什么都不要填)

最后,把字幕缺少的换行符号\n\r加上

分析:

我们需要查找出这一内容:
CRLF
2(字幕行数) CRLF

改成:
CRLF
CRLF(或者LF)
2(字幕行数)CRLF

CRLF即换行符,CR=\r LF=\n。 有一些字幕只有\n的格式,你只需要加\n即可

开始批量替换符号

我们需要勾选"正则表达式",然后

查找

(\r\n\d+\r\n)

替换为

\n\1

神奇的一刻发生了,我们来看看结果


【字幕组的日常】srt字幕格式错误 需要批量添加换行符 如何用正则表达式来批量查找和替换?_第4张图片
啊哈哈哈哈哈字幕回来了宝宝真聪明.png

大功告成!!!

注:

如何批量选中字幕行数呢?
字幕行数从1~100多行不等。选中数字的正则表达式的符号是\d,这表示一位数字,选中多位数我们就再后面加个"+"
所以,选中字幕行数的表达式是"\d+"

正则另一个巧妙的地方就是用括号(),这能够在保留原来的内容的基础上添加一些内容。
比如你还可以用这个把字幕的指定行数的末尾都改加上个前缀或后缀什么的。

括号的作用举例:
查找
^(\d+) (.*)$
替换
\1abc\2

这效果是在两个括号之间加上abc
\1 表示第一个括号的内容(\d+)
\2 表示第二个括号的内容(.*)
^$是比较严谨的选择方法,一般改改字幕啥的可以不用

参考文章:

用正则表达式替换的时候,同时保留原来的内容
实用正则表达式匹配和替换
正则表达式 30 分钟入门教程
如何优雅的提取 ass 字幕文件里的文本?

你可能感兴趣的:(【字幕组的日常】srt字幕格式错误 需要批量添加换行符 如何用正则表达式来批量查找和替换?)