Partage
  • Partager sur Facebook
  • Partager sur Twitter

ReplaceAll ou substring?

regex

Sujet résolu
    18 juin 2009 à 13:22:27

    J'ai un document html de la forme:
    <html><body><table><tr><td style='border:1; width:20px;height:20px;Background-color:#101;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:<gras>#105</gras>;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:#110;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:#32;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:#116;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:#101;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:#120;'></td>
    <td style='border:1; width:20px;height:20px;Background-color:#116;'></td>
     </tr></table></body></html>
    


    et j'aimerai extraire de ce document seulement le code de couleur, et le mettre dasn un array int[] couleurs ;
    qui contiendra `a la fin {105,110,32,116,101,120,116}

    Je n'arrive pas `a extraire ces entiers de mon code html.

    Je peu retirer le debut et la fin des tag
    avec
    String matcher1 = "<html><body><table><tr>";
    String matcher2 = "</tr></table></body></html>";
    // je voudrais bien utiliser ces deux matches pour extraire l'entier du milieu
    String matcher3 = "<td style='border:1; width:20px;height:20px;Background-color:#";
    String matcher4 = ";'></td>";
    //je remplace les premiers tags par le vide
    text = text.replaceAll(matcher1, "");
    text = text.replaceAll(matcher2, "")
    


    Quelqu'un pourrait-il m'aider a resoudre ce probleme?
    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      18 juin 2009 à 13:29:37

      Le but n'est pas d'offrir des codes tout frais sur un plateau d'argent. Tout ce que je peux te dire est que tu sembles bien parti
      • Partager sur Facebook
      • Partager sur Twitter
        18 juin 2009 à 13:45:58

        Fais également des replaceAll sur matcher3 et matcher4 sauf que matcher4 tu lui enlèves le point-virgule et finalement, tu fais un split sur le point-virgule et tu auras un tableau de String contenant tes entiers.
        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2009 à 14:48:55

          Merci pour vos reponses. Je pense que je vais essaye la solution de janulrich00001. Et voir ce que ca me donne.
          • Partager sur Facebook
          • Partager sur Twitter
            18 juin 2009 à 18:29:27

            Selon le pattern, tu peux aussi utiliser split(regex) pour récupérer deux String, et si tout s'est bien passé la couleur recherché est dans la deuxième String renvoyé par split.
            • Partager sur Facebook
            • Partager sur Twitter
              19 juin 2009 à 16:42:21

              Citation : elmh

              Selon le pattern, tu peux aussi utiliser split(regex) pour récupérer deux String, et si tout s'est bien passé la couleur recherché est dans la deuxième String renvoyé par split.



              oui c'est vrai mercipour ta reponse .
              J'ai pu resoudre mon probleme comme avec ReplaceAll pour extraire et split pour recuperer les entiers.
              int i=0; int debut= 0; int fin = 0;
              matcher4="'></td>";
              StringBuffer bf = new StringBuffer();
              text = text.replaceAll(matcher1, "");
              text = text.replaceAll(matcher2, "");
              text = (vertext.replaceAll(matcher3, "")).replaceAll(matcher4, "");
               while (i < text.length()){
              	 if(text.charAt(i)==';'){
              	 fin = i;
              	token = text.substring(debut, fin);
              	debut = fin + 1;		
                      bf.append(token);
                      i++;
              	}
              ...
              
              • Partager sur Facebook
              • Partager sur Twitter

              ReplaceAll ou substring?

              × 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