((?:https?:\/\/)?(?:www.)?youtu(?:\.?be)?\.(?:com|be))
包括:
https://www.youtube.com
https://www.youtube.be
http://www.youtube.com
http://www.youtube.be
https://youtube.com
https://youtube.be
http://youtube.com
http://youtube.be
www.youtube.com
www.youtube.be
youtube.com
youtube.be
youtu.be
www.youtu.be
http://www.youtu.be
https://www.youtu.be
http://youtu.be
https://youtu.be
PHP:
$re = "/((?:https?:\\/\\/)?(?:www.)?youtu(?:\\.?be)?\\.(?:com|be))/";
$str = "https://www.youtube.com\nhttps://www.youtube.be\nhttp://www.youtube.com\nhttp://www.youtube.be\nhttps://youtube.com\nhttps://youtube.be\nhttp://youtube.com\nhttp://youtube.be\nwww.youtube.com\nwww.youtube.be\nyoutube.com\nyoutube.be\nyoutu.be\nwww.youtu.be\nhttp://www.youtu.be\nhttps://www.youtu.be\nhttp://youtu.be\nhttps://youtu.be\n\n\nbsadf.fds\n\nyoutube\.(be|com)";
preg_match_all($re, $str, $matches);
UPD: 是,@nicael是正確的,但我就這麼改變:
((?:https?:\/\/)?(?:www\.)?(?:youtube\.(?:be|com)|youtu\.be))
HTTP://www.regexr。 com /是一個非常好的網站,學習正則表達式並嘗試這種東西 –