如何按可变规则拆分字符串,提取SRT文件对话中的标签与文本
实现方案
核心思路
通过正则表达式的分支匹配规则,优先捕获所有<xxx>格式的HTML标签,再捕获剩余的连续非标签内容(含文本、空格等),即可直接得到要求的拆分结果。
代码实现(Python示例)
import re def split_srt_content(input_str): # 正则规则:匹配HTML标签 或 连续的非标签内容 split_pattern = r'<[^>]+>|[^<]+' return re.findall(split_pattern, input_str) # 测试用例 test_str = '<b><font color="#ca6500">FEMALE VOICE:</font></b> <i>The world is changed.</i>' print(split_srt_content(test_str))
输出结果
['<b>', '<font color="#ca6500">', 'FEMALE VOICE:', '</font>', '</b>', ' ', '<i>', 'The world is changed.', '</i>']
补充说明
- 该方案适配SRT文件中常见的简单富文本标签场景,无需引入第三方解析库,执行效率高
- 若存在标签属性内嵌
>的极端非法格式,可更换为BeautifulSoup等HTML解析库遍历节点实现拆分
内容的提问来源于stack exchange,提问作者Jerardo
相关产品推荐
相关产品推荐

