Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer 2 liens contenu dans une String

utilisation des expressions regulières ?

Sujet résolu
    10 décembre 2010 à 9:50:59

    Salut les zéros :)

    Voici le problème :
    Mon programme récupére des String du type : <img src="http://t2.gstatic.com/images?q=tbn:UaZfh_-LUwyjpM:http://www.siteduzero.com/images/static/livre-xhtml-css.jpg" height="113" width="150"></a>

    Le premier lien est la miniature retourné par une recherche google image, le second est l'original de cette miniature.
    Ce que je voudrais maintenant, c'est récupérer ces deux liens :-°
    Donc, dans une string : http://t2.gstatic.com/images?q=tbn:UaZfh_-LUwyjpM
    Et dans une autre : http://www.siteduzero.com/images/stati [...] xhtml-css.jpg

    Je ne vois pas vraiment comment faire. J'ai commencé à me renseigner sur les expressions régulières et je pense que je vais devoir les utiliser pour faire ce que je veux faire.

    Merci de m'éclairer :D
    • Partager sur Facebook
    • Partager sur Twitter
      10 décembre 2010 à 18:43:25

      Je pense qu'avec la regex
      ^.*?(http://.+?):(http://.+?)".*$

      tu devrais avoir le résultat que tu souhaites avec les URL dans les groupes 1 et 2.
      Donc voici un petit exemple de l'implémentation en Java :
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
      
      public class UrlRegex {
          public static void main(String[] args) {
      	Pattern p = Pattern.compile("^.*?(http://.+?):(http://.+?)\".*$");
      	Matcher m = p.matcher("<img src=\"http://t2.gstatic.com/images?q=tbn:UaZfh_-LUwyjpM:" +
      			"http://www.siteduzero.com/images/static/livre-xhtml-css.jpg\" height=\"113\" width=\"150\"></a>");
      	m.matches();
      	System.out.println(m.group(1));
      	System.out.println(m.group(2));
          }
      }
      

      Si tu veux plus d'explications n'hésite pas à demander.

      A noter que cette regex, et donc ce code, ne fonctionnera pas si la forme de l'URL change.
      • Partager sur Facebook
      • Partager sur Twitter
        11 décembre 2010 à 18:39:19

        Merci pour cette solution Shaddan mais elle ne peut malheureusement pas marché :( En effet la forme de l'url change et n'est donc jamais la même.
        Mais j'ai tout de même put résoudre mon problème (d'une manière peu académique certes :-° )
        J'ai remarqué que le premier lien avait toujours la même longueur (un substring() a donc suffit). Pour le deuxième lien, j'ai également utilisé la fonction substring avec comme paramètre de fin de chaine :
        maString.lastIndexOf("\" height")
        
        .

        Voilà :D Merci pour tout
        • Partager sur Facebook
        • Partager sur Twitter

        Récupérer 2 liens contenu dans une String

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown