Zunächst möchte ich sagen, dass ich weiß, es gibt eine Reihe von verwandten Fragen, aber nach dem Versuch, die Lösungen in diesen Themen, I noch haben etwas, das nicht für mein Code funktioniert ..Regex zum Extrahieren youtube vid mit "www.youtube/user/" -Typ Url
ich brauche einen regulären Ausdruck für die youtube vid von dieser speziellen Art von URL zu extrahieren:
http://www.youtube.com/user/thedailyenglishshow#p/u/0/B3-Bn4aUXTY
Mein pHP-Code und Muster verwendet aussehen dies:
public function retrieveUserVideo($data) {
$url = $data;
$pattern = '/[^\/]+$/';
//$pattern = '(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+';
preg_match($pattern, $url, $matches);
$result = $matches[1];
return $result;
}
Ich habe diese Muster bei "http://gskinner.com/RegExr/" überprüft, und sie scheinen zu funktionieren, aber ich erhalte eine leere Ergebniszeichenfolge mit dem ersten Muster, während mit der zweiten ich einen unbekannten Modifizierer bekomme '[' Error. Wenn ich das Muster zwischen '#' setze, bekomme ich das leere String-Ergebnis.
Irgendwelche Ideen, was mit dem Code falsch ist? Bitte hilf mir, ich bin wirklich verzweifelt!
Das Problem war, dass Sie nichts "()" mit Ihrer Regex erfassen. Steven Antwort sollte auf diese Frage –
Die Antwort funktionieren könnte Ihnen helfen ... http://stackoverflow.com/questions/2936467/parse-youtube-video-id-using-preg-match/6382259#6382259 – Benjam