Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trouver un mot dans une page html

    12 juillet 2009 à 18:55:54

    Bonjour je récupère une page html en java...

    Et en faite je souhaite récupérer un mot en particulier dans cette page.

    Ce mot est variable donc je me disais faire ça avec les balises html...

    Je connais un peu les regex, mais je ne sais pas si c'est la méthode la plus adaptée...

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      12 juillet 2009 à 18:58:17

      les regex c'est la méthode la plus appropriée
      • Partager sur Facebook
      • Partager sur Twitter
      J'ai tous les badges d'OpenClassrooms.
        12 juillet 2009 à 19:01:35

        J'ai entendu parlé de DOM , ça ne va pas???
        • Partager sur Facebook
        • Partager sur Twitter
          12 juillet 2009 à 19:03:26

          Si t'as une idée de la position relative du mot dans la page, les regex sont très appropriées (et même plus je ne vois guère d'autre solution).
          C'est un peu chiant à assimiler, mais tu le fais une bonne fois pour toutes et t'es tranquille pour la suite.

          JDOM sert plutôt à parser les documents XML, je suis pas bien sûr que ça aide pour les documents HTML.
          • Partager sur Facebook
          • Partager sur Twitter
            12 juillet 2009 à 19:08:43

            Oki donc je vais voir pour les regex...

            Vous avez un bon site pour les regex java??

            Je connais un peu les regex PHP ^..$ =)

            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              12 juillet 2009 à 19:12:50

              Ben j'ai appris sur la doc, y'a tout ce qu'il faut pour faire toutes les regex possibles.
              Y'a pas besoin de délimiteur comme en PHP, les regex sont des simples objets String compréhensibles par un certain nombre de méthodes (notamment String.split(), Pattern.compile(), Scanner.useDelimiter()...
              • Partager sur Facebook
              • Partager sur Twitter
                12 juillet 2009 à 19:16:37

                Ou encore ici : ftp://ftp-developpez.com/cyberzoide/java/regex.pdf avec des exemples simples et pratiques.
                • Partager sur Facebook
                • Partager sur Twitter
                J'ai tous les badges d'OpenClassrooms.
                  12 juillet 2009 à 19:56:39

                  J'essaie de tester un exemple :

                  import java.util.regex.*;
                  
                  import gnu.xml.xpath.Pattern;
                  
                  
                  public class WebParser 
                  {
                  	private static Pattern pattern;
                  	private static Matcher matcher;
                  	public static void main(String args[]) 
                  	{
                  	   pattern = Pattern.compile("Hugo");
                  	   matcher = pattern.matcher("Hugo Etiévant");
                  	   while(matcher.find()) 
                  	   {
                  	       System.out.println("Trouvé !");
                  	   }
                  	}
                  
                  }
                  


                  Mais il me soulgine les lignes

                  pattern = Pattern.compile("Hugo");//souligne compile
                  matcher = pattern.matcher("Hugo Etiévant");//souligne matcher

                  Il me dit que compile et matcher sont indéfinie...

                  Que faire??
                  mErci
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juillet 2009 à 20:08:18

                    Chez moi tout marche nickel , il suffit juste d'enlever cette ligne
                    import gnu.xml.xpath.Pattern;
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                    J'ai tous les badges d'OpenClassrooms.
                      21 août 2009 à 19:20:42

                      Salut,
                      j'ai un problèmeavec une regex.
                      je voudrais extraire le deuxième nombre de l'expression "rgb(23,67,79)".
                      Comment écrire la regex pour avoir "67"?
                      merci d'avance
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 août 2009 à 20:23:39

                        en utilisant la virgule comme délimiteur : ",(\\d{1,3}),"

                        String text = "rgb(23,67,79)";
                        Pattern pattern = Pattern.compile(",(\\d{1,3}),");
                        Matcher matcher = pattern.matcher(text);
                        if(matcher.find())
                        	System.out.println(matcher.group(1));
                        


                        A noter qu'il y'a plusieurs de regex possibles pour cela, selon la précision de la capture voulue.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 août 2009 à 0:48:56

                          Merci elmh pour ta réponse.
                          En fait j'ai utilisé replaceAll pour enlever toutes les instances de "rgb" dans le fichier html. là j'ai donc une suite du genre (23,67,79). Je veu extraire de cette suite le "67,".
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 août 2009 à 12:06:23

                            le regex reste valable mais pourquoi faire un replaceAll?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 août 2009 à 18:14:30

                              J'ai un code html à peu près comme ceci
                              <div style="width:20%; background-color:rgb(56,89,35);"></div><div style="width:20%; background-color:rgb(40,9,548);"></div><div style="width:20%; background-color:rgb(112,08,22);"></div><div style="width:20%; background-color:rgb(75,90,37);"></div>
                              

                              J'ai trouvé plus pratique de retirer toutes les instances de
                              <div style="width:20%; background-color:rgb
                              

                              et de

                              ;"></div>
                              

                              dans le texte avec ReplaceAll.
                              La regex "\\d{1,3}" me permets d'extraire juste le nombre n2 du milieu dans chaque triplet ( n1,n2 ,n3 ).
                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 août 2009 à 19:15:39

                                C'que j'te propose, c'est simple, tu donnes le String que tu as, et je te ponds une regex. (voire quelqu'un d'autre de motivé)

                                Je le fais parce que je comprends qu'on n'a pas tous envie de passer quatre heures à tout piger aux regex c'est assez tordu parfois.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Trouver un mot dans une page html

                                × 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