preg_match regex部分对于youtube url失败


preg_match regex part fails for youtube urls

var_dump(preg_match("/^((http':'/'/){0,}(www'.){0,}(youtube'.com){1}|(youtu'.be){1}('/watch'?v'=[^'s]){1})$/", "http://www.youtube.com/watch?v=M7FIvfx5J10"));此代码将在失败时返回0。。为什么?正则表达式有什么问题?你可以在这里测试http://writecodeonline.com/php/

试试这个:

var_dump(preg_match("/^((http':'/'/){0,}(www'.){0,}((youtube'.com){1}|(youtu'.be){1})'/watch'?v'=[^'s]*)$/", "http://www.youtube.com/watch?v=M7FIvfx5J10"));

这似乎奏效了。您忘记了视频id的量词和youtube.com/youtu.be 的OR周围的括号