Я пытаюсь создать регулярное выражение, которое должно соответствовать URL-адресам, которые указывают непосредственно на * .mp4 файл или видео YouTube, используя PHP.
Я успешно создал регулярное выражение, которое соответствует только видео YouTube и другому регулярному выражению для сопоставления только с прямым * .mp4 файлом, теперь я хочу объединить их, что в настоящее время не удается.
Требование соответствия заключается в том, что он должен соответствовать URL-адресу с использованием http (s) и / или www и без него. Так, например, следующие ссылки должны быть действительными:
https://www.example.com/files/video.mp4
http://www.example.com/files/video.mp4
https://example.com/files/video.mp4
http://example.com/files/video.mp4
www.example.com/files/video.mp4
www.youtube.com/watch?v=xxxxxx
www.youtu.be/watch?v=xxxxxx
Я использую regex101.com для тестирования и объяснений. В настоящее время некоторые ссылки действительны в соответствии с данным веб-сайтом тестера, а некоторые ссылки неверны, хотя на самом деле они должны быть правильными.
Есть ли кто-нибудь, кто может сказать мне, что не так с моим регулярным выражением ?
(http(s)?:\/\/|(w){3}).*\.((?:mp4)|).*(youtu(be|.be))?(\.com)?\/.+