regex - Invision电源板中修改的YouTube链接所需的媒体标签正则表达式代码

标签 regex youtube invision-power-board

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/

相关文章:

regex - 在 Perl 中编辑/匹配某个特定匹配项下方的 n 行字符串?

python - 关于Python中的各种正则表达式和列表长度的条件语句

regex - 如何匹配同一字符串中的多组正则表达式模式?

正则表达式匹配两个或多个逗号分隔的整数

php - 使用php在iframe中回显youtube视频src

loops - 在YouTube上获得评论作者

php - 从您的页面接收对YouTube视频访问的确认

php - IPB4 - 组名存储在哪里?