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

Langage Java Discussion :

Nombre occurences dans string


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut Nombre occurences dans string
    Bonjour

    J'ai un XML avec le format suivant:

    ...
    <PARENT_NODE1>
    <NOM_BALISE arg1="true" arg2="false" obligatoire="true" type="text"/>
    <NOM_BALISE2 arg1="false" arg2="false" obligatoire="false" type="text"/>
    <NOM_BALISE3 arg1="false" arg2="false" arg3="1" obligatoire="false" type="number"/>
    </PARENT_NODE1>
    ...
    Je voudrais retourner toutes les balises de type text qui sont obligatoires, donc, qui ont l'argument obligatoire="true" et type="text".

    J'ai commencer à construire une expréssion régulière pour cela.
    En bref, ce que je veux qu'elle fasse c'est me retourner toutes les occurences des String qui commencent par un "<" et qui finissent pas "obligatoire="true" type="text"".

    Mon expression régulière actuelle ne marche encore pas. La voici:

    String sPattern = "/^<\\w" + "obligatoire=\"true\" type=\"text\"" + "$";
    Le \w est pour qu'après le "<" il y est n'importe quel mot. Hors, il faut que je dise que entre le "<" et le "obligatoire" il puisse y avoir n'importe quoi...

    Pouvez vous m'aider à trouver ce qu'il manque?


    merci

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Essaye avec l'expression suivante, ça devrait faire ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "<.*? obligatoire=\"true\" type=\"text\"/>";
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    Merci pour ta réponse...

    mais ça ne va pas

    Citation Envoyé par le y@m's Voir le message
    Essaye avec l'expression suivante, ça devrait faire ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "<.*? obligatoire=\"true\" type=\"text\"/>";

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Oui effectivement une petite erreur de ma part, voici la correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "<[^>]*? obligatoire=\"true\" type=\"text\"/>";
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut


    Pas encore...

    Voici mon code. J'ai déjà essayé plusieurs manières mais sans succès...

    public static void main(String[] args) {

    String xml = "<PARAM modifiable=\"true\" obligatoire=\"true\" type=\"text\">19/02/2010</PARAM>";

    //String sPattern = "m/^<\\w\\.+ obligatoire=\"true\" type=\"text\"" + "$/m";
    //String sPattern = "obligatoire=\"true\" type=\"text\"";
    //String sPattern = "<.*? obligatoire=\"true\" type=\"text\"/>";
    String sPattern = "<[^>]*?obligatoire=\"true\" type=\"text\"/>";
    System.out.println("Pattern: " + sPattern);
    Pattern pattern = Pattern.compile(sPattern);
    Matcher match=pattern.matcher(xml);
    try {
    while(match.find())
    System.out.println("=> " + match.group());
    } catch(Exception e) {
    e.printStackTrace();
    }
    }


    Citation Envoyé par le y@m's Voir le message
    Oui effectivement une petite erreur de ma part, voici la correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "<[^>]*? obligatoire=\"true\" type=\"text\"/>";

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    C'est normal, dans ton exemple tes balises n'avaient jamais de contenu ("<... />") donc je supposais que c'était tout le temps le cas.

    Pour accepter également des balises avec du contenu essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "<(\\w+)[^>]*? obligatoire=\"true\" type=\"text\"((/>)|(>.*?</\\1>))";
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

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

Discussions similaires

  1. compter nombre d'occurence dans un String
    Par L4BiN dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 24/11/2011, 01h25
  2. Compter nombre Split dans string
    Par bouuuh dans le forum C#
    Réponses: 3
    Dernier message: 14/02/2011, 21h16
  3. Nombre d'occurences dans une chaîne de caractères
    Par Olivier14 dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 19h11
  4. [AS] Nombre d'occurences dans une string
    Par frol dans le forum Flash
    Réponses: 3
    Dernier message: 26/12/2005, 15h13
  5. recherche du nombre d'occurences dans une table
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/01/2004, 20h03

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