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"));
它似乎有效。您忘记了youtube.com / youtu.be或周围的视频ID和括号的量词
关于php - YouTube网址的preg_match正则表达式部分失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20332843/