Skip to main content
 首页 » 编程设计

python之在\n [string]\n 之间捕获字符串

2025年05月04日34www_RR

我正在尝试解析 YouTube 上的歌曲描述以编译成 .csv

目前我可以隔离时间码,但事实证明尝试隔离歌曲和艺术家比较棘手。

首先,我捕获了空白

# catches whitespace 
pattern = re.compile(r'\s+') 

其次,时间码(让字符串更容易处理)

# catches timecodes 
pattern1 = re.compile(r'[\d\.-]+:[\d.-]+:[\d\.-]+') 

然后我子并删除。

然后我 try catch \n 之间的所有字符串,因为这是轨道列表的格式

songBeforeDash = re.search(r'^([\\n][a-zA-Z0-9]*-[a-zA-Z0-9]*[\\n]*)+$', description) 

格式遵循\n[string]-[string]\n

使用这个 excellent visualiser ,我已经能够对其进行调整,以便它捕获第一个结果,但是任何后续结果都不匹配。 这是一个停在第一个结果而不抓到其他结果的情况吗?

这是我要捕获的示例

\nmiddleschoolxAso-Cypress\nShopan-Woodnot\nchromonicci-Memories.\nYasper-MoveTogether\nFenickxDelayde-Longwayhome\nauv-Rockaway5pm\nsadtoi-Aires\nGMillsxKyleMcEvoy-Haze\nRuckP-CoffeeBreak\n 

请您参考如下方法:

你可以用 split() 来做到这一点

t = '\nmiddleschoolxAso-Cypress\nShopan-Woodnot\nchromonicci-Memories.\nYasper-MoveTogether\nFenickxDelayde-Longwayhome\nauv-Rockaway5pm\nsadtoi-Aires\nGMillsxKyleMcEvoy-Haze\nRuckP-CoffeeBreak\n' 
 
liste = t.split('\n') 
liste = liste[1:-1:] 
print(liste)