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 :

[Regex] Matching...


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut [Regex] Matching...
    Bonjour,


    Ayant parcouru la recherche avancée du forum, je n'ai pas obtenu satisfaction [pourtant j'en ai lu des threads!!], d'où ce petit thread.

    J'ai un analyseur de fichiers de configuration (qui ressemblent assez fortement à une DTD/SCHEMA).

    Je souhaiterai par exemple contrainte la valeur d'une affectation de chaine de caractères, à l'aide d'expressions régulières (les vraies, pas les bidouiller )


    En gros, par des exemples:

    Ici, archive est soit vrai, soit faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    entree=archive
    valeurs=vrai|faux

    Un ID est une chaine de caractères qui commence par W et après que des chiffres, comme W002, ou W104...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    entree=ID!
    valeurs=W[0123456789]*

    Mais je m'en fiche du contenu de la valeur, ce que je souhaiterai, c'est de faire un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     String id = "Z100";
     verifieSiExpressionReguliereCorrecte(id, "W[0123456789]*");

    En gros, je vous demande si ce travail n'a pas déjà été fait, si il n'existe pas une classe JAVA qui résout mon problème.


    Merci!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Je crois que g pas trop compris ce que tu veux.
    Parce que d'après moi c juste un match que tu dois faire.
    Mais si ca n'était que ca tu y aurais déjà pensé je crois.

    Tu veux vérifier qu'une chaine de caractère vérifie l'expression régulière?
    Du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern.match(monExpressionReguliere,maChaineDeCaractere);
    Mess with the best, die like the rest!

  3. #3
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Oui, c'est ça mon pb, j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    id.matches("W[0123456789]*");
    et ca me rend faux à chaque fois!



  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    La solution est pourtant dans la javadoc.
    Je te recopie l'exemple texto :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pattern p = Pattern.compile("a*b");
     Matcher m = p.matcher("aaaaab");
     boolean b = m.matches();
    "a*b" c'est l'expression régulière
    "aaaaab" la chaine que tu veux tester

    En ce qui concerne ton expression régulière j'utiliserai plutot:
    "^W\\d*$" plutot que "W[0123456789]*" c'est plus joli.
    ^ signale le début de la chaine
    $ signale la fin de la chaine
    donc ne met ces deux caractère que si tu veux que ta chaine n'ai rien avant le W et rien apres les chiffres.

    Si tu veux plus d'info va la:
    http://java.sun.com/j2se/1.4.2/docs/...x/Pattern.html
    Mess with the best, die like the rest!

  5. #5
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Ah bah, tiens! je ne savais même pas qu'il fallait faire comme ça!
    En tout cas, tout marche comme sur des roulettes à présent...


    Merci!


    PS: Je dormirais moins débile ce soir!

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

Discussions similaires

  1. regex + match vb.net
    Par jalalnet dans le forum VB.NET
    Réponses: 4
    Dernier message: 06/05/2012, 17h34
  2. Réponses: 5
    Dernier message: 19/03/2012, 20h45
  3. [Regex] match un header XML
    Par hannibal.76 dans le forum Débuter
    Réponses: 4
    Dernier message: 16/03/2012, 14h05
  4. Problème fonction Regex.Matches(,).Count
    Par maxwel56 dans le forum Silverlight
    Réponses: 4
    Dernier message: 21/06/2010, 14h49
  5. [Regex]Match d'une regexp avec une chaîne avec caractères spéciaux
    Par gdawirs dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 12h24

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