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 :

Trouver la première occurrence dans une expression régulière


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Par défaut Trouver la première occurrence dans une expression régulière
    Bonjour,

    J'ai une expression régulière sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pattern p = Pattern.compile("^\\s*([^\\#]+)\\=.*");
    Matcher m = p.matcher(element);
    if (m.find()) {...}
    Elle permets de récupérer tous les éléments d'un fichier properties ne commencant pas par # (commentaires) et contenant le signe égal.

    Si j'utilise la chaine :
    prop.data=test
    ça fonctionne correctement

    mais si j'utilise
    prop.data=test=test
    ça ne fonctionne pas car dans m.group(1) je recupère la chaine "prop.data=test"

    Comment faire pour que l'expression me retourne la première occurrence du signe =, c'est à dire "prop.data" ?

    Si ce n'est pas possible je peux me rabattre sur la méthode indexOf()

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Le + est "gourmand". C'est à dire qu'il va toujours chercher la plus grande chaine correspondant au pattern.

    Il suffit d'utiliser x? pour le rendre "réticent" afin qu'il s'arrête à la plus petite chaine correspondante.

    a++

    PS : Quel est l'objectif de tout cela ?

  3. #3
    Membre très actif Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Par défaut
    C'est pour valider que toutes les properties utilisées dans l'application sont bien définies dans les fichiers *.properties.

    Je vois pas comment je peux utiliser le ? dans mon expression, tu aurais un exemple ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern p = Pattern.compile("^\\s*([^\\#]+?)\\=.*");

  5. #5
    Membre très actif Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Par défaut
    well done

Discussions similaires

  1. Une date butoire dans une expression régulière
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/02/2008, 10h11
  2. Réponses: 5
    Dernier message: 31/08/2006, 13h34
  3. Parenthèses dans une expression régulière
    Par papyreno dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/05/2006, 16h28
  4. [EXP] Evaluation dans une expression régulière
    Par SergentHeinz dans le forum Langage
    Réponses: 7
    Dernier message: 10/11/2005, 18h17
  5. Réponses: 6
    Dernier message: 17/08/2005, 12h38

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