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] Recherche précisions


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut [RegExp] Recherche précisions
    Bonjour !

    Voilà en fait je lis un fichier de config et je tombe sur cette ligne :
    ok_locales fr es en de it pt ru
    Mon but étant de récupérer les différentes localisation, je vérifie si ma ligne correspond à "^ok_locales " et si c'est le cas, je la parse en profondeur.
    La chose "étrange" (pour moi :p) c'est que ce bout de code ne fonctionne pas (enfin la regexp n'est jamais validée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while ((ligne = reader.readLine()) != null) 
    {
        if (ligne.matches("^ok_locales ")) 
        {
           // mon traitement ici
        }
    }
    Alors qu'avec l'expression suivante :
    ligne.matches("^ok_locales.*")
    Ça fonctionne, bon normal me direz vous, mais je pensais (à tord ?) que matches renvoyait 'true' si la regexp était dans la chaine, pas si la regex était la chaine... Bref je cherche surtout des explications si vous pouvez m'en donner. Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par Napalm51 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while ((ligne = reader.readLine()) != null) 
    {
        if (ligne.matches("^ok_locales ")) 
        {
           // mon traitement ici
        }
    }
    Essaie d'effacer l'espace entre locales et " et réessaie.
    Tiens nous au courant
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut
    Evidemment j'ai déjà testé, de même qu'avec '\\s' mais rien à faire, il ne veut pas ... j'ai aussi essayé 'ok\\_locales' est toujours le même soucis.

  4. #4
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    matches vérifie si le String en entier peut être décrit par l'expression donc le résultat est correct.

    Si tu cherches à trouver un pattern dans un string, il vaut mieux jouer directement les classes Pattern et Matcher (par exemple pour faire des regexp "à la Perl" )

    En l'occurence c'est startsWith que tu devrais utiliser
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Points : 261
    Points
    261
    Par défaut
    Effectivement Gardyen a raison.

    Regarde le lien : http://cyberzoide.developpez.com/java/regex/

    On explique le Matcher,...
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut
    Plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ligne.matches("^ok_locales .*$")

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut
    merci de la précision, je suis fixé maintenant

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

Discussions similaires

  1. REGEXP - Recherche avec ou sans Zéro, suivant une lettre
    Par roseline43 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/10/2009, 21h27
  2. [DOM] Objet RegExp recherche de pattern
    Par Loki13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/08/2006, 17h50
  3. [Regexp] Recherche dans un texte formaté html
    Par YavaDeus dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 09/02/2006, 17h46
  4. [RegExp] Recherche
    Par CUCARACHA dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 11h55
  5. [C#][xml][regexp] Recherche d'une regexp dans un fichier xml
    Par LeJocker dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2005, 12h29

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