IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[REGEXP] une idée ?


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 55
    Par défaut [REGEXP] une idée ?
    Petite explication :

    Je cherche à supprimer toutes les balises <p/> qui n'ont que des espace comme contenu interpretable par un browser.

    Example OK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p> </p>
    <p>      </p>
    <p><span>    </span></p>
    Example PAS ok :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><span>du texte</span><p id=\"toto\"> </p></p>
    --> car <span> comprend du texte et donc il faudrais catch :


    Voici ma chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <d><d><h4>salouti ! </h4></d></d><p class=\"mlkjlmk\">
    <p><p class=\"jeveutceluila\"><span>   </span>
    </p></p><p class=\"etceluila\">  </p></p><d> 
    </d>
    Je voudrais récupérer les chaines marquées en gras et rouge.

    Voici mon expression régulière pour l'instant :
    Ceci me trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="mlkjlmk"><p><p class="jeveutceluila"><span>   </span></p></p><p class="etceluila">  </p></p>
    Alors je me suis dit je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (?s)<p[.*&&[^(p>)]]>  *</.*p>
    pour ne prendre que les <p> </p> qui n'inclu pas d'autre <p mais aucun résultat...


    Si vous avez une idée ? merci

  2. #2
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 55
    Par défaut encore plus simple ...
    je n'arrive pas a faire ceci :

    chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><h><k><l><p><f><e><m><p><k>
    objectif :
    récupéré toute les balise SAUF les <p>

    voici mon regexp :
    ça me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    find : <
    find : >
    find : <
    find : >
    find : <
    find : >
    ...
    En faite je n'arrive pas à faire de soustraction...

    Je voudrais dire : "n'importe quel chaine (.*) qui ne comprend PAS la lettre 'p'"

  3. #3
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 55
    Par défaut toujours plus simple ^^
    chaine :
    azmljcqpçjeozpaofjnouihqmuizefadpkamlamlkdsfs

    je veut toutes les chaines sauf les chaine avec 'a'

    ce qui devrais donner :
    zmljcqpçjeozp
    ofjnouihqmuizef
    dpk
    ml
    mlkdsfs

    Ok avec un split("a") mais bon l'objectif est de comprendre les regexp... pour resoudre le probleme plus haut

    j'ai essayé :
    [(.*)&&[^ a]]


    j'ai l'impression que && s'applique qu'au ensemble de caractere ... c'est le cas ?

    je doit mal utilisé &&

  4. #4
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 55
    Par défaut (?s)<p(?:(?!<p).)*> +</(?:(?!p>).)*/p>
    SOLUTION :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (?s)<p(?:(?!<p).)*> +</(?:(?!p>).)*/p>
    (?:(?!<p).)* d'apres se que j'ai compris:
    - (?!<p) : pas la chaine "<p"
    - (?:(?!<p).) : n'importe quoi (.) sauf ("<p")
    - (?:(?!<p).)* : suite de n'importe quoi (.) sauf ("<p") ou VIDE


    Il me reste juste un problème car ça ne marque pas si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (?s)<p(?:(?!<p).)*> *</(?:(?!p>).)*/p>
    C'est à dire chercher également les paragraphes VIDE : ></ sans même un espace. Je comprend pourquoi mais je vois pas comment contourner le probleme ... :?

    Une idée peut être ?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 55
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (?s)<p[(?!<p).]*> *</[(?!p>).]*/p>
    ça à l'air ok ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RegExp une fois sur deux
    Par Zineb1987_UNI dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/10/2009, 09h58
  2. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  3. [Regexp] Obtenir une regexp à partir du texte ?
    Par Alec6 dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2005, 16h40
  4. Réponses: 2
    Dernier message: 15/03/2005, 15h40
  5. [langage] [RegExp] Récupérer une portion de phrase
    Par GLDavid dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2004, 22h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo