PHP – Как конвертировать URL-адрес YouTube с помощью Regex

Как конвертировать приведенные ниже URL-адреса YouTube

$url1 = http://www.youtube.com/watch?v=136pEZcb1Y0&feature=fvhl $url2 = http://www.youtube.com/watch?feature=fvhl&v=136pEZcb1Y0 

в

  $url_embedded = http://www.youtube.com/v/136pEZcb1Y0 

используя регулярные выражения?

Related of "PHP – Как конвертировать URL-адрес YouTube с помощью Regex"

Вот пример решения:

PHP:

 preg_replace('/.+(\?|&)v=([a-zA-Z0-9]+).*/', 'http://youtube.com/watch?v=$2', 'http://www.youtube.com/watch?v=136pEZcb1Y0&feature=fvhl'); 

Совпадение:

 ^.+(\?|&)v=([a-zA-Z0-9]+).*$ 

Заменить:

 http://youtube.com/watch?v=$2 

Вот как это работает: анализатор регулярных выражений .

Ответ suicideducky в порядке, но вы изменили требования. Пытаться

 preg_match($url1, "/v=(\w+)/", $matches); $url_embedded = "http://www.youtube.com/v/" . $matches[1]; 

Если неправильная версия была кеширована, я имел в виду $matches[1] !

добавьте строку « http://www.youtube.com/watch/ » к результату применения регулярного выражения «v = (\ w +)» к URL-адресу (-ам), чтобы выполнить задание.

\ w указывает буквенно-цифровые символы (az, AZ, 0-9 и _) и, таким образом,

EDIT для обновленного вопроса. Мой подход кажется немного хакерским.

поэтому получим результат применения регулярного выражения «v = (\ w +)», а затем применим к нему регулярное выражение «(\ w +)». Затем прикрепите его к строке « http://www.youtube.com/v/ ».

поэтому подведем итог:

 "http://www.youtube.com/v/" + ( result of "(\w+)" applies to the result of ( "v=(\w+)" applied to the origional url ) ) 

EDITED AGAIN Этот подход предполагает, что вы используете функцию регулярного выражения, которая соответствует подстроке, а не всей строке

Кроме того, версия MvanGeest превосходит мою.