在我正在开发的系统中,我需要以下列格式识别youtube链接
[youtube] youtube url [/ youtube]
目前我到达了这个正则表达式:
#\[youtube\]http://www.youtube\.(.*)/watch\?v=([a-zA-Z0-9_-]*)\[\/youtube\]#s
但是这种模式无法像
一样识别网址[YouTube的] http://www.youtube.com/watch?v=s3wXkv1VW54&feature=fvst[/youtube]
请注意功能= fvst 。
有人可以帮助我识别所有可能的youtube网址吗?
答案 0 :(得分:4)
怎么样
|\[youtube\]http://www.youtube\.(.*?)/watch\?v=([a-zA-Z0-9_-]*)[%&=#a-zA-Z0-9_-]*\[\/youtube\]|s
编辑:更改了正则表达式,只保留括号内的视频ID。
答案 1 :(得分:1)
注意:
我会对URL(/ i)执行不区分大小写的匹配
。匹配任何东西使用 \。而是匹配URL
另外,“www。”在Youtube中,URL是可选的。
使用(\。[a-z] +){1,2}代替“。*”来匹配“.com”,“。co.uk”,...在“youtube”之后
假设“& feature”部分是可选的,正则表达式将是:
/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&feature=([a-z]+))?\[\/youtube\]/is
假设“& feature”部分是可选的,AND可以有除“feature”之外的其他参数:
/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&([a-z]+)=([a-z0-9_-])+)*?\[\/youtube\]/is