problème avec expression regulière en java

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par johnny-57, 21 Août 2015.

  1. johnny-57

    johnny-57 WRInaute occasionnel

    Inscrit:
    20 Avril 2007
    Messages:
    319
    J'aime reçus:
    0
    Bonjour,

    Je ne suis pas du tout à l'aise avec java, plutôt avec PHP. Je constate que les réactions avec une règle d'expression régulière ne sont pas les mêmes sous PHP qu'en java. J'ai donc un soucis pour créer une règle d'extraction d'une portion de texte.

    J'ai un code HTML duquel je souhaite extraire uniquement une partie. Pour exemple :

    Code:
    $code = 'du texte et ou du code html avant <div class="rte"><p>mon texte qui peut contenir des balises html ou pas, comme c'est le cas ici puisqu'il est encadré par des balise p</p></div> </section> <div>encore du texte blabla</div>';
    
    Je voudrai récupérer tout ce qui se trouve à l'intérieur de la balise div. Pour ce faire, en php je fais comme ça et ça fonctionne bien :

    Code:
    $regexp = '/<div class="rte">(.+)<\/div> <\/section>/';
    
    en java j'ai fais la même chose et ça foire complet. Je me retrouve en java avec une extraction de tout ce qui se trouve après "<div class="rte">" sans que ça s'arrête avant "<\/div> <\/section>" Je n'y comprends rien...:calim2:

    Une idée pour me sortir de cette merdouille ?

    Merci d'avance
     
  2. loubet

    loubet WRInaute impliqué

    Inscrit:
    19 Février 2003
    Messages:
    871
    J'aime reçus:
    0
    s'il n'y a pas de balises dans ce qui doit être retourné :
    ([^<]+)
     
  3. johnny-57

    johnny-57 WRInaute occasionnel

    Inscrit:
    20 Avril 2007
    Messages:
    319
    J'aime reçus:
    0
    Merci loubet.

    Mais si, justement, comme expliqué il peut y en avoir, dans l'exemple que je donne il y a d'ailleurs une balise p à récupérer avec. En bref, il peut très bien y avoir de la mise en forme HTML dans ce que je dois récupérer.

    J'utilise ce que tu donnes en solutions pour d'autre portion où je suis certain de n'avoir que du texte, pas de balise html.
     
  4. Lynard

    Lynard WRInaute discret

    Inscrit:
    30 Mai 2012
    Messages:
    63
    J'aime reçus:
    0
    Bonjour,

    Euh pardon, c'est peut être une réponse stupide mais en js :
    document.getElementsByClassName("rte")[0].innerHTML, ou en jquery html(), ca te retourne le contenu de la div.
     
  5. spout

    spout WRInaute accro

    Inscrit:
    14 Mai 2003
    Messages:
    8 663
    J'aime reçus:
    2