Question

Dans un système que je développe, je dois reconnaître le lien youtube dans le format suivant

  

[youtube] url youtube [/ youtube]

pour le moment je suis arrivé à cette expression régulière:

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

Mais ce modèle ne peut pas reconnaître l'url

  

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

Notez = fonction FVST .

Quelqu'un peut me aider à reconnaître possible url youtube?

Était-ce utile?

La solution

Qu'en est-

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

EDIT:. Changé la regex pour ne garder que l'ID vidéo à l'intérieur entre parenthèses

Autres conseils

Notes:
J'effectuer une correspondance insensible à la casse sur les URL (/ i)
. correspond à tout; utilisation \. au lieu de faire correspondre l'URL
En outre, "www." dans les URL Youtube est facultative.
Utilisez (\. [A-z] +) {1,2} au lieu de "*" correspondre ".com", ".co.uk", après .. "youtube"

En supposant que la partie est facultative, l'expression régulière « et fonction » serait:

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

En supposant que la « & fonction » partie est facultative, et il peut y avoir d'autres paramètres que « fonction »:

/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&([a-z]+)=([a-z0-9_-])+)*?\[\/youtube\]/is
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top