2011-09-09 3 views

Répondre

1

Essayez cette regex:

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

(L'erreur a été corrigée)

Voir aussi mon ideone ou mon jsfiddle.

2

Puisque vous êtes en PHP, il suffit d'utiliser parse_url et substr:

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

Démo: http://ideone.com/f3viH

0

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

Donc, si elle correspond, B4PZHP0N est dans un tampon de capture 1, à savoir: $ 1

0

J'ai fait quelque chose de similaire mais un peu plus générique. si l'id peut venir soit après/v /,? V = ou & 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);