【问题标题】:Get Youtube Id from youtube embed using Regex [duplicate]使用正则表达式从 youtube 嵌入中获取 Youtube ID [重复]
【发布时间】:2025-12-21 11:50:12
【问题描述】:

可能重复:
php regex - find all youtube video ids in string

如何使用正则表达式从嵌入中获取 youtube ID,即使它是旧格式或 ifarme

例子

<iframe width="560" height="315" src="http://www.youtube.com/embed/ghc8cYOA1Vo" frameborder="0" allowfullscreen></iframe>

<object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/ghc8cYOA1Vo?hl=en_US&amp;version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ghc8cYOA1Vo?hl=en_US&amp;version=3" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>

请指教,

【问题讨论】:

    标签: regex youtube


    【解决方案1】:
    youtube.com/((v|embed)/)?[a-zA-Z0-9]+
    

    Youtube 最近从 10 个字符的 ID 增加到了 11 个字符,他们最终可能会增加这个数字。

    【讨论】:

    • 这不考虑我以前见过的下划线_
    【解决方案2】:

    使用正则表达式youtube[.]com/(v|embed)/([^"?]+),YouTube ID 将被捕获到第二组中。

    DEMO

    【讨论】:

    • 是的。因为它清楚地表明你必须逃避正斜杠!但这对 Rubular 来说是特别的。提供的正则表达式绝对有效。
    【解决方案3】:

    我测试了这个正则表达式((v|embed))\/?[a-zA-Z0-9_-]+,它工作正常

    【讨论】:

    • 1°) 您如何使用此正则表达式获取 YouTube ID? 2°) 这真是一个糟糕的正则表达式,我不确定你是否知道常见的特殊字符... 3°) helloworlv-va 和 @ 987654324@ 将匹配。我真的建议你使用我的。