我可以加载单个YouTube视频的URL。但现在的问题是如何加载YouTube的播放列表视频。所以我的问题是,我该如何替换两个相同模式,但都具有不同的URL替换?
例如:
实际URL:
<iframe width="400" height="327" src="http://www.youtube.com/embed/1UiICgvrsFI&list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp&index=1" allowfullscreen="true"></iframe>
将模式替换为以下内容:
<iframe width="560" height="315" src="//www.youtube.com/embed/1UiICgvrsFI?list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp" allowfullscreen></iframe>
这里第一个&
变成了?
,第二个&
及其后面的内容,即&index=1
被剥离。
这是models.py文件:
class Video(models.Model):
title = models.CharField(max_length=100)
video_url = models.URLField(max_length=100)
def save(self, *args, **kwargs):
new_url = (self.video_url.replace("watch?v=","v/"))
super(Video, self).save(*args, **kwargs)
if new_url:
self.video_url = new_url
编辑:
def save(self, *args, **kwargs):
new_url = re.sub('watch\?v=','embed/',self.video_url)
new_url = re.sub(r'^(http:\/\/)([\w\W]+)\&list=([\w\W]+)(\&index=[\d]+)$', r'//\2?list=\3', new_url)
if new_url:
self.video_url = new_url
super(Video, self).save(*args, **kwargs)
&
。您能否请用正则表达式来展示一下如何做到呢?还请注意,index=1 可能会有所变化。再次感谢。 - Robin&
和http://
: http://www.youtube.com/embed/1UiICgvrsFI`&`list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp - Robin