YouTubeの動画へのURLが大量にあり、pythonと正規表現を使って&
以降の余分なクエリを削除し、それぞれをhttps://www.youtube.com/watch?v={video_id}
の形に直そうとしています。
re.sub(r"(.*)(&.*)", r"\1", url)
で変換すると追加のクエリが1つの場合は上手くいくのですが、&
が2つ以上だと末尾のものしか検知されません。
どう書き換えれば良いのでしょうか?
Python
1import re 2 3 4def main(): 5 raw_urls = [ 6 "https://www.youtube.com/watch?v=_066dEkycr4", 7 "https://www.youtube.com/watch?v=_066dEkycr4&t=6", 8 "https://www.youtube.com/watch?v=_066dEkycr4&feature=youtu.be&t=6", 9 "https://www.youtube.com/watch?v=_066dEkycr4&list=WL&index=0&t=6s", 10 ] 11 urls = [re.sub(r"(.*)(&.*)", r"\1", url) for url in raw_urls] 12 print(*urls, sep="\n") 13 14 15if __name__ == "__main__": 16 main()
Output
1# 全てが https://www.youtube.com/watch?v=_066dEkycr4 となるようにしたい 2https://www.youtube.com/watch?v=_066dEkycr4 3https://www.youtube.com/watch?v=_066dEkycr4 4https://www.youtube.com/watch?v=_066dEkycr4&feature=youtu.be 5https://www.youtube.com/watch?v=_066dEkycr4&list=WL&index=0
回答3件
あなたの回答
tips
プレビュー