Frage

In einem System, das ich entwickle ich brauche den YouTube-Link in folgendem Format erkennen

  

[youtube] YouTube-URL [/ youtube]

für den Moment, als ich an diesem regulären Ausdruck kam:

#\[youtube\]http://www.youtube\.(.*)/watch\?v=([a-zA-Z0-9_-]*)\[\/youtube\]#s

Aber dieses Muster ist nicht in der Lage URL zu erkennen, wie

  

[youtube] http://www.youtube.com/ watch? v = s3wXkv1VW54 & feature = FVST [/ youtube]

Beachten Sie die feature = FVST .

Einige kann man mir helfen, in alle möglichen YouTube-URL erkennen?

War es hilfreich?

Lösung

Wie wäre es

|\[youtube\]http://www.youtube\.(.*?)/watch\?v=([a-zA-Z0-9_-]*)[%&=#a-zA-Z0-9_-]*\[\/youtube\]|s

EDIT:. Die Regex Changed nur die Video-ID in Klammern zu halten

Andere Tipps

Weitere Informationen:
Ich würde führe ein Groß- und Kleinschreibung Spiel auf URLs (/ i)
. passt alles; verwenden \. stattdessen die URL
übereinstimmen Auch „www.“ in Youtube URLs ist optional.
Verwenden Sie (\. [A-z] +) {1,2} statt "*" gefunden ".com", ".net", .. nach "youtube"

Unter der Annahme, der "& feature" Teil optional ist, würde die regex sein:

/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&feature=([a-z]+))?\[\/youtube\]/is

Unter der Annahme, die "& feature" Teil optional ist, und es können auch andere Parameter als "Feature":

/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&([a-z]+)=([a-z0-9_-])+)*?\[\/youtube\]/is
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top