preg_match正则表达式部分因youtube网址而失败

时间:2013-12-02 16:19:37

标签: php youtube preg-match

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/

进行测试

1 个答案:

答案 0 :(得分:1)

试试这个:

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

似乎有效。您忘记了youtube.com / youtu.be上OR旁边的视频ID和括号的量词。