2013-10-04 66 views
-1

我发现这个表达式提取的YouTube的ID:如何从YouTube视频链接中提取和验证ID?

#^http(?:s?)://(?:www\.)?youtu(?:be\.com/watch\?(?:.*?&(?:amp;)?)?v=|\.be/)([\w‌​\-]+)(?:&(?:amp;)?[\w\?=]*)?#i 

现在我想要修改正则表达式来提取YouTube的ID为YouTube网址,格式如下:

http://www.youtube.com/watch?v=ESUYMoJVpYo&feature=share&a=rRL4kwOAewcP9KzId6Ks4A

我该如何确保从所有可能的url格式中提取出Id ...

+1

要让人想回答你应该改写你的问题。描述你想要达到什么目标,你尝试了什么,什么不起作用。在当前的问题看来,很难理解所有这些。最好在Google搜索后进行。另外,正如你所看到的,并不是所有的人都是友善的,有些人不愿意或者不想解释原因就想关闭你的问题。忽略它们并重试。 – Kamarey

+0

感谢您的建议,希望能够更清楚我现在想要的。 – Benedikt

+0

可能重复的[ASP/C#正则表达式youtube视频](http://stackoverflow.com/questions/15313354/asp-c-regex-for-youtube-video) –

回答

1

URLs通常不会被正则表达式解析。如果你想以任何方式修改它们,那么你可能不应该使用它们。

URL使用所谓的Query String将参数传递到页面。查询字符串的开头用问号标记,后面跟着一个与符号分隔的名称/值对列表。

例如,使用您自己的网址:http://www.youtube.com/watch?v=ESUYMoJVpYo&feature=share&a=rRL4kwOAewcP9KzId6Ks4A

Page request: www.youtube.com/watch 
Whole query string: ?v=ESUYMoJVpYo&feature=share&a=rRL4kwOAewcP9KzId6Ks4A 
Name/Value pairs: 
    v  -> ESUYMoJVpYo 
    feature -> share 
    a  -> rRL4kwOAewcP9KzId6Ks4A 

如果你想解析/修改URL,通过分解查询字符串这样做。这比为它编写正则表达式要可靠得多。

+0

但我也想验证,如果url是一个有效的YouTube网址... – Benedikt

+0

@eundd这听起来像一个不同于你发布的问题。 –

+0

对不起,我不够清楚。 – Benedikt

相关问题