Lien youtube pour regex
-
19-09-2019 - |
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?
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