如何使用正则表达式从带时间码的YouTube视频描述提取歌手和歌曲名
实现方案
你可以通过带非捕获组的正则表达式直接提取目标内容,无需额外处理无关文本:
正则表达式
适配分钟级、小时级两种时间戳格式的通用规则:
^\[(?:\d{1,2}:)?\d{2}:\d{2}\]\s*(.*)$
规则说明
^\[(?:\d{1,2}:)?\d{2}:\d{2}\]匹配行首的时间戳部分:?:标记该组为非捕获组,匹配到的时间戳不会纳入最终提取结果- 兼容
[00:00](分钟级)、[01:02:03](小时级)两种常见YouTube时间戳格式
\s*匹配时间戳和音轨信息之间的空格、制表符等空白字符(.*)捕获时间戳后的所有内容,即你需要的「歌手 - 歌名」字符串- 开启正则的多行匹配模式,即可一次性提取所有符合规则的音轨条目
代码示例(Python)
import re # 你的YouTube视频描述文本 video_desc = """Text text text Tracklist: [00:00] Sobs - Girl [02:25] Mopac - Cross-Eyed Dreaming [05:54] L I P S - In Summer [09:18] Small Wood House - T.V Text text text""" # 编译正则,开启多行匹配 pattern = re.compile(r'^\[(?:\d{1,2}:)?\d{2}:\d{2}\]\s*(.*)$', re.MULTILINE) # 提取所有捕获组内容 track_list = pattern.findall(video_desc) # 输出结果即为目标列表 for track in track_list: print(track)
运行后输出:
Sobs - Girl Mopac - Cross-Eyed Dreaming L I P S - In Summer Small Wood House - T.V
内容的提问来源于stack exchange,提问作者Cristian Trusin
相关产品推荐
相关产品推荐

