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

错误格式

这……到底发生了什么才会把稿子做成酱紫= =.png

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

正确的srt格式的中英字幕大概长这样.png

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

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

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


啊哈哈哈哈哈字幕回来了宝宝真聪明.png

大功告成!!!

注:

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

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

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

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

参考文章:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,447评论 0 9
  • 雪花在妖阳里飘扬 海棠遗落到三月流浪 一碗热酒翻倒在天堂 醉生梦死婉转也轩昂 苦了念想换一首悲凉 再温柔也被某些重...
    李译阅读 401评论 0 4
  • 最近体重开始下降,这大概是7月停止跑步以后最大的成果!所以吧……我上半年果然跑了个假步。 然后我最近开始很乖很乖地...
    是个坏小孩Air阅读 500评论 0 0