用于捕获曲目的 Spotify URI 或网络的正则表达式字符串 link

Regex string to capture a track's Spotify URI or web link

我正在尝试将 Spotify 功能集成到我的 Twitch 聊天机器人中。 该机器人的所有功能均使用 Spotipy Python 编写。

其中之一是,将歌曲添加到我正在播放的 Spotify 队列中。 以下代码可用于该目的。

if re.match(r"spotify[\/:]track[\/:].+[\s?]", songreq_params[1]):
   spotify.add_to_queue(songreq_params[1], sp_device_id)

但在我看来 r"spotify[/:]track[/:].+[\s?]" 正则表达式无法捕获 Spotify跟踪 URI 和 URL,例如:

我很好奇问题是关于代码段的语法还是正则表达式。

您可以像这样稍微修改正则表达式:

import re
a="spotify:track:3Mh4EaJcfM4v2hpY49rjg6"
re.findall(r"spotify[/:]*track[/:]*[A-Za-z0-9]+",a)

你也想捕捉这个link(https://open.spotify.com/track/3Mh4EaJcfM4v2hpY49rjg6?si=nFRVStM1TpCWWtaJGWNLsg)吗?

查看此正则表达式,这可能会有更好的帮助。让我知道这个是否奏效。它涵盖了

import re
a="spotify:track:3Mh4EaJcfM4v2hpY49rjg6"
b="https://open.spotify.com/track/3Mh4EaJcfM4v2hpY49rjg6?si=nFRVStM1TpCWWtaJGWNLsg"
re.findall(r"[\bhttps://open.\b]*spotify[\b.com\b]*[/:]*track[/:]*[A-Za-z0-9?=]+",b)