2011-09-09 3 views
0

Я пытаюсь написать регулярное выражение для разбора этого адреса для PHP скрипта:Regex для разбора MEGAVIDEO URL

http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780

, чтобы получить это: B4PZHP0N

Может кто-то помочь? Заранее спасибо.

+3

Вы должны использовать подстроку функции вашего языка. – xanatos

ответ

1

Попробуйте это регулярное выражение:

/^http:\/\/www\.megavideo\.com\/v\/(.{8}).*$/ 

(была исправлена ​​ошибка)

см Также мой ideone или мой jsfiddle.

2

Поскольку вы в PHP, просто использовать parse_url и substr:

$mega = 'http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780'; 
$want = substr(parse_url($mega, PHP_URL_PATH), 3, 8); 

Демо: http://ideone.com/f3viH

0

/([^:.\/]+)[a-f0-9]{32}/

Так что, если он совпадает, B4PZHP0N в буфере захвата 1, то есть: $ 1

0

Я сделал нечто похожее, но немного более общее. поэтому идентификатор может прийти либо после того, как/V /,? V = или & v =

$url = 'http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780'; 
foreach (array('/v/', '?v=', '&v=') as $k) 
{ 
    $pos = strpos($url, $k); 
    if ($pos>0) 
    { 
     $pos += strlen($k); 
     break; 
    } 
} 
if (!$pos) 
    die("not found"); 
$id = substr($url, $pos, 8); 
die($id); 
Смежные вопросы