2009-07-28 8 views
0

Je reçois des URL comme ceci:Regex pour identifier si une URL est une image ou non?

http://img23.example.com/images/j43j32k3.jpg 

Et je dois déterminer si à la fois:

a) Commence par HTTP

b) se termine par JPEG, JPG, GIF ou PNG

J'utilise Ruby pour faire le matching Je ne sais pas pour regex celui-ci ..

Répondre

1

les regex suivantes délimitée par les matchs de l '/ de une chaîne commençant par htpp et se terminant par l'une des extensions d'image spécifiée dans votre question

/\Ahttp.*(jpeg|jpg|gif|png)\Z/

+0

OP, les URL de l'image peuvent-elles avoir des paramètres GET (auquel cas, cette regex doit être plus complexe)? Etes-vous toujours en train de faire une correspondance sur une seule URL (sinon, cette expression régulière doit être non gourmande. * ?, non. *)? Avez-vous besoin d'attraper certains scripts qui génèrent des images, comme gen.php? Name = pic1, par exemple? –

+0

En outre, vous devez activer l'insensibilité à la casse avec l'indicateur i. –

+0

Je cherche à analyser 1 seule URL à la fois, pour un lien absolu vers une image. – dMix

1

% r {^ http: // . * \. (jpeg | jpg | gif | png) $} i

+0

Cela a l'avantage de vérifier http: // pour s'assurer qu'il s'agit bien d'une URL, et que cela se termine par exemple. .gif pour s'assurer que c'est vraiment une extension - en plus, il est insensible à la casse, donc il correspond à des choses comme .GIF etc. –

Questions connexes