我正在做一个程序,将来会解释来自YouTube的视频的搜索结果。我的代码片段版本旨在从歌曲标题中提取艺术家的化名。
我有一个保存在字符串中的标题:“ Drake ft。DJ Khalid,Nicki Minaj-'Why Futures'(官方视频)“ ,我想忽略
edit_string = "Drake ft. DJ Khalid, Nicki Minaj - "Why Futures" (Official video)"
rapper_name = open_csv() #list of rapper's nicks
new_title = []
for rapper_name in rappers_list:
yer = ''.join(rapper_name)
if re.findall(yer.lower(),edit_string.lower()): new_title.append(yer)
new_title = ' x '.join(new_title)
print(new_title)
edit_string = new_title
实际结果是:Drake x Khalid x Nicki Minaj x DJ Khalid x Future
(因为不幸的是,在我的说唱歌手列表中,我有一个人叫做Future)
应为:Drake x DJ Khalid x Nicki Minaj
如何以最佳方式(最佳优化)进行操作?预先感谢您的所有帮助。
答案 0 :(得分:1)
使用@FailSafe进行模式注册。 OP,此答案表明@FailSafe建议的确实正确:
import re
edit_string = "Drake ft. DJ Khalid, Nicki Minaj - "Why Futures " (Official video)"
rappers_list = ['Drake', 'DJ Khalid', 'Nicki Minaj', 'Future']#open_csv() #list of rapper's nicks
new_title = []
for rapper_name in rappers_list:
yer = '(?i)\\b'+str(rapper_name)+'\\b'
if re.findall(yer.lower(), edit_string.lower()):
new_title.append(rapper_name)
new_title = ' x '.join(new_title)
print(new_title)
edit_string = new_title
Output:
## Drake x DJ Khalid x Nicki Minaj