IPBoard已经带有用于常规YouTube链接的相关正则表达式代码。我需要有关通过订阅更新电子邮件发送的另一种YouTube链接的帮助。以下是一些示例链接:
http://youtube.com/attribution_link?a=r_FgjB-RKNo&u=/watch%3Fv%3DB0_X8zWJd0Q%26feature%3Dem-uploademail (B0_X8zWJd0Q)
http://youtube.com/attribution_link?a=1crTn2Lx38I&u=/watch%3Fv%3DHhebhh2s5d4%26feature%3Dem-uploademail (Hhebhh2s5d4)
http://youtube.com/attribution_link?a=_zMgiznzBto&u=/watch%3Fv%3D-kaoCPvUHJM%26feature%3Dem-uploademail (-kaoCPvUHJM)
http://youtube.com/attribution_link?a=F8VReY1sT0A&u=/watch%3Fv%3D5RLM9rk0Q8s%26feature%3Dem-uploademail (5RLM9rk0Q8s)
末尾方括号中的代码是相关的YouTube视频ID。
attribution_link?a=
似乎包含不同视频的随机数字。这是IPBoard后端显示的内容:
常规YouTube链接的现有正则表达式结构:
http(?:s)?://(www.)?youtube.com/watch\?(\S+?)?v=([\d\w-_]+?)(&\S+?)?
转换为:
<iframe id="ytplayer" class="EmbeddedVideo" type="text/html" width="640" height="390" src="http://youtube.com/embed/$3?html5=1&fs=1" frameborder="0" allowfullscreen webkitallowfullscreen /></iframe>
IPBoard准则::
媒体替换匹配
范例连结:
http://www.test.com/23423/
匹配:
http://www.test.com/{1}/
媒体替换HTML
You can use $1, $2, etc as variable replacements.
范例连结:
<a href="http://www.testm.com/$1/">$1</a>
结果:
<a href="http://www.testm.com/23423/">23423</a>
最佳答案
更新了表达式以处理嵌入式的urlencoded链接:
youtube.*?watch.*?v(?:%25|=)([\d\w-_]+)
示例:http://regex101.com/r/fO6qE5
旧:
http(?:s)?:\/\/(?:www\.)?youtube\.com\/.*?watch%3Fv%([\d\w-_]+)
示例:http://regex101.com/r/cX9rP2
关于regex - Invision电源板中修改的YouTube链接所需的媒体标签正则表达式代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069337/