我在使用正则表达式时遇到了一些问题。基本上我想要做的就是将这些类型的 Spotify 网址中的任何一种作为播放列表
https://open.spotify.com/user/spotify/playlist/37i9dQZF1DZ06evO2ZpGiQ?si=-6S0EBlURrao__YyIOW6bg
或
spotify:用户:spotify:播放列表:37i9dQZF1DZ06evO2ZpGiQ
并获取这些网址的用户 ID,即 spotify
,并希望获取这些网址的播放列表 ID,即 37i9dQZF1DZ06evO2ZpGiQ
我还想要一些正则表达式来确保它是这些 URL 类型之一。
到目前为止,我已尝试使用此正则表达式来检查它是否是使用此正则表达式的 Spotify 网址:
^(spotify:|https:\/\/[a-z]+\.spotify\.com\/)
但它只匹配最上面的 URL。
最佳答案
在这里,我得到了每个候选字符串的不可变部分,即 https://open.spotify.com/user/spotify/playlist
和 spotify:user:spotify:playlist
在第一组中,然后我捕获第二组中的播放列表 ID,其余的可以忽略。
您可以在那里看到它的工作情况:https://regex101.com/r/tDtsTS/1
^(https:\/\/open.spotify.com\/user\/spotify\/playlist\/|spotify:user:spotify:playlist:)([a-zA-Z0-9] +)(.*)$
关于javascript - Spotify 网址正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50876850/