Intereting Posts
Селен: Как утверждать, что определенный элемент присутствует в определенной ячейке определенной таблицы? Настройка обратного прокси-сервера NGINX для веб-сайтов, размещенных на S3 Невозможно получить доступ к константе класса из экземпляра с помощью оператора :: scope Проверьте, существует ли каталог в PHP Переходы Laravel: класс «не найден» PHP Предупреждение: запуск PHP: ????????: невозможно инициализировать модуль PHP preg_match найти соответствующее слово Как остановить ошибку порта VMware 443 на панели управления XAMPP v3.2.1 ZF2: пользовательский картографический модуль для модуля ZfcUser Применение Laravel принадлежит одному продукту для одной или какой-либо категории Простой PHP-код эха не работает Scrape FULL image src с PHP двухсекционный сеанс с кодом Найти все возможные 2 комбинации букв в заданной строке, используя PHP Как получить временную метку Unix в php на основе часового пояса

Reg exp для youtube link

В системе, которую я разрабатываю, мне нужно узнать ссылку youtube в следующем формате

[youtube] URL-адрес youtube [/ youtube]

на данный момент я пришел к этому регулярному выражению:

#\[youtube\]http://www.youtube\.(.*)/watch\?v=([a-zA-Z0-9_-]*)\[\/youtube\]#s 

Но эта модель не может распознать url как

[youtube] http://www.youtube.com/watch?v=s3wXkv1VW54&feature=fvst[/youtube]

Обратите внимание на функцию = fvst .

Кто-то может помочь мне распознать все возможные URL-адреса youtube?

Как насчет

 |\[youtube\]http://www.youtube\.(.*?)/watch\?v=([a-zA-Z0-9_-]*)[%&=#a-zA-Z0-9_-]*\[\/youtube\]|s 

EDIT: Изменено регулярное выражение, чтобы сохранить только идентификатор видео в круглых скобках.

Заметки:
Я бы выполнил нечувствительность к регистру по URL-адресам (/ i)
, соответствует чему угодно; использование \. вместо этого, чтобы соответствовать URL-адресу
Кроме того, "www." в Youtube URL является необязательным.
Используйте (\. [Az] +) {1,2} вместо ". *" Для соответствия ".com", ".co.uk", .. после слова "youtube"

Предполагая, что часть «& feature» необязательна, регулярное выражение будет выглядеть так:

/\[youtube\]http:\/\/(www\.)?youtube(\.[az]+){1,2}\/watch\?v=([a-z0-9_-]*)(&feature=([az]+))?\[\/youtube\]/is

Предполагая, что часть «& feature» не является обязательной, И могут быть другие параметры, чем «функция»:

 /\[youtube\]http:\/\/(www\.)?youtube(\.[az]+){1,2}\/watch\?v=([a-z0-9_-]*)(&([az]+)=([a-z0-9_-])+)*?\[\/youtube\]/is