Мне было дано следующее регулярное выражение:
if (preg_match_all("'(http://)?(www[.])?(youtube|vimeo)[^\s]+'is",$prova,$n))
{
foreach ($n[3] as $key => $site)
{
$video_links[$site][] = $n[0][$key];
}
Однако, если у меня есть строка вроде:
"привет, посмотрите мое vimeo видео здесь:
http://www.vimeo.com. ... / очень мило, хм? "
Вместо того, чтобы получать только URL, я также получаю слово vimeo.
Я считаю, что выражение regex повторяет больше, чем должно, и я хотел бы получить ТОЛЬКО те URL-адреса, которые он находит, а не все ссылки на «vimeo» или «youtube».
Могу ли я запросить вашу помощь, чтобы сузить область действия этого выражения и получить только URL-адреса?