如何用正则去除字幕文件的行号、空行与时间戳?
解决字幕文件清理问题:移除行号、时间戳与标签,保留纯文本
针对你要清理带行号、时间戳和角色标签的字幕需求,我整理了一套在Regex101上可用的正则方案,一步到位就能得到你想要的纯文本:
正则匹配模式
^\d+\s+\d{2}:\d{2}:\d{2}\.\d{3}\s+-->\s+\d{2}:\d{2}:\d{2}\.\d{3}\s+|<v[^>]+>|(\r?\n)
替换内容
留空(直接输入空字符串即可)
正则规则拆解
^\d+\s+:匹配每一行开头的数字行号,以及行号后面的空格\d{2}:\d{2}:\d{2}\.\d{3}\s+-->\s+\d{2}:\d{2}:\d{2}\.\d{3}\s+:精准匹配字幕里的完整时间戳格式(比如00:00:01.876 --> 00:00:02.709),包括中间的箭头和前后多余空格<v[^>]+>:匹配<v Instructor>这类角色标签,确保移除所有<v ...>格式的内容(\r?\n):匹配换行符,替换后让所有文本直接拼接成连续的字符串
在Regex101的操作步骤
- 打开Regex101后,选择JavaScript或PCRE正则引擎(这个规则在两者都能正常运行)
- 在「Test String」框粘贴你需要处理的字幕内容
- 在「Regular Expression」框输入上面的正则模式
- 在「Substitution」框留空
- 你就能直接在「Substitution Result」里看到拼接好的纯文本了
额外小提示
如果你的字幕还有其他特殊格式(比如不同类型的标签),可以微调正则的标签匹配部分;要是想让文本之间保留空格分隔,也可以把换行符的匹配规则调整为替换成空格,而不是空字符串。
内容的提问来源于stack exchange,提问作者yasarui
相关产品推荐
相关产品推荐

