正则表达式从字符串获取YouTube URL

亨里克·佩特森

我有以下代码,可获取存储在字符串变量中的YouTube URL:

function getVideoUrlsFromString($html) {
    $regex = '#((?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)([a-zA-Z0-9-]*))#i';
    preg_match_all($regex, $html, $matches);
    $matches = array_unique($matches[0]);
    usort($matches, function($a, $b) {
        return strlen($b) - strlen($a);
    });
    return $matches;
}

$html = 'https://www.youtube-nocookie.com/embed/VWrlXsmcL2E';
$html = getVideoUrlsFromString($html);
print_r($html);

但这不适用于:

https://www.youtube-nocookie.com/embed/VWrlXsmcL2E
http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US

有什么方法可以更改正则表达式以使其与这两个常用YouTube URL一起使用?

亚历山大·奥玛拉

这样的事情应该可以解决问题:

<?php

function getVideoUrlsFromString($html) {
    $regex = '#((?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|v\/)|youtu\.be\/|youtube\-nocookie\.com\/embed\/)([a-zA-Z0-9-]*))#i';
    preg_match_all($regex, $html, $matches);
    $matches = array_unique($matches[0]);
    usort($matches, function($a, $b) {
        return strlen($b) - strlen($a);
    });
    return $matches;
}

$html = '
    https://www.youtube-nocookie.com/embed/VWrlXsmcL2E
    http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US
';
$html = getVideoUrlsFromString($html);
print_r($html);

输出:

Array
(
    [0] => www.youtube-nocookie.com/embed/VWrlXsmcL2E
    [1] => www.youtube.com/v/NLqAF9hrVbY
)

这是两者的区别,以了解添加了什么:

#((?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/    )|youtu\.be\/                                )([a-zA-Z0-9-]*))#i
#((?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|v\/)|youtu\.be\/|youtube\-nocookie\.com\/embed\/)([a-zA-Z0-9-]*))#i

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式从具有多个 url 的字符串中获取图像 URL

来自分类Dev

URL的正则表达式子字符串

来自分类Dev

如何使用正则表达式从html字符串获取图像url

来自分类Dev

javascript正则表达式从包含脚本标签的字符串获取url

来自分类Dev

使用正则表达式获取带有大写符号的字符串迅速的URL

来自分类Dev

javascript正则表达式从包含脚本标记的字符串获取url

来自分类Dev

在 URL 中最后出现 / 后使用正则表达式获取字符串

来自分类Dev

正则表达式:在字符串中清除YouTube URL,仅保留YouTube视频代码

来自分类Dev

正则表达式:在字符串中清除YouTube URL,仅保留YouTube视频代码

来自分类Dev

如何修复此URL正则表达式以匹配字符串末尾的URL?

来自分类Dev

youtube URL的正则表达式

来自分类Dev

如何使用带有查询字符串的正则表达式来验证URL?

来自分类Dev

在Swift中,如何编写正则表达式以删除字符串中的URL?

来自分类Dev

使用正则表达式验证URL查询字符串

来自分类Dev

使用正则表达式从URL提取子字符串

来自分类Dev

正则表达式匹配WP Redirection插件中不以字符串开头的URL

来自分类Dev

C#查找并用正则表达式替换字符串中的URL

来自分类Dev

正则表达式,用于解析URL的子字符串

来自分类Dev

使用正则表达式分离和提取部分URL字符串?

来自分类Dev

Greasemonkey无需正则表达式即可从url中删除字符串

来自分类Dev

简单的正则表达式:尝试match()URL字符串为空

来自分类Dev

使用正则表达式从URL提取字符串(在Data Studio上)

来自分类Dev

Javascript正则表达式将协议添加到url字符串

来自分类Dev

正则表达式以匹配URL子字符串

来自分类Dev

使用正则表达式从URL提取子字符串

来自分类Dev

如何在带有url的正则表达式字符串的javascript中查找?

来自分类Dev

使用正则表达式在字符串中连接URL

来自分类Dev

PHP特殊的正则表达式模式,以匹配特定字符串后的URL

来自分类Dev

使用正则表达式验证URL查询字符串

Related 相关文章

  1. 1

    正则表达式从具有多个 url 的字符串中获取图像 URL

  2. 2

    URL的正则表达式子字符串

  3. 3

    如何使用正则表达式从html字符串获取图像url

  4. 4

    javascript正则表达式从包含脚本标签的字符串获取url

  5. 5

    使用正则表达式获取带有大写符号的字符串迅速的URL

  6. 6

    javascript正则表达式从包含脚本标记的字符串获取url

  7. 7

    在 URL 中最后出现 / 后使用正则表达式获取字符串

  8. 8

    正则表达式:在字符串中清除YouTube URL,仅保留YouTube视频代码

  9. 9

    正则表达式:在字符串中清除YouTube URL,仅保留YouTube视频代码

  10. 10

    如何修复此URL正则表达式以匹配字符串末尾的URL?

  11. 11

    youtube URL的正则表达式

  12. 12

    如何使用带有查询字符串的正则表达式来验证URL?

  13. 13

    在Swift中,如何编写正则表达式以删除字符串中的URL?

  14. 14

    使用正则表达式验证URL查询字符串

  15. 15

    使用正则表达式从URL提取子字符串

  16. 16

    正则表达式匹配WP Redirection插件中不以字符串开头的URL

  17. 17

    C#查找并用正则表达式替换字符串中的URL

  18. 18

    正则表达式,用于解析URL的子字符串

  19. 19

    使用正则表达式分离和提取部分URL字符串?

  20. 20

    Greasemonkey无需正则表达式即可从url中删除字符串

  21. 21

    简单的正则表达式:尝试match()URL字符串为空

  22. 22

    使用正则表达式从URL提取字符串(在Data Studio上)

  23. 23

    Javascript正则表达式将协议添加到url字符串

  24. 24

    正则表达式以匹配URL子字符串

  25. 25

    使用正则表达式从URL提取子字符串

  26. 26

    如何在带有url的正则表达式字符串的javascript中查找?

  27. 27

    使用正则表达式在字符串中连接URL

  28. 28

    PHP特殊的正则表达式模式,以匹配特定字符串后的URL

  29. 29

    使用正则表达式验证URL查询字符串

热门标签

归档