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] Regexp à trouver


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut [regexp] Regexp à trouver
    Bonjour,

    je cherche un motif pour ressortir le dernier mot de l'expression suivante :
    [Macro du document source, Modules, nomMacro].

    J'ai fait ca : [*,*,\s{1}(*){1}] (entre autre ;-) ) et évidemment ce ne marche pas (au mieux un "false" lors du test mais aussi des erreurs).
    je cherche à coder l'extraction de ce qui est compris entre :
    - une chaine commencant par "[" suivi d'un groupe de caractères quelconque comportant deux virgules et terminé par l'une des virgule immédiatemment suivie d'un espace.
    - une chaine composée uniquement de "[".

    La chaine recherchée comporte potentiellement tous les caractères, en nombre indetérminé.

    Une idée ?
    Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex="\\[\\w*(.*?)\\w*,\\w*(.*?)\\w*,\\w*(.*?)\\w*\\]";
    Ta chaîne se trouvera en position n° 3.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex="\\[\\w*(.*?)\\w*,\\w*(.*?)\\w*,\\w*(.*?)\\w*\\]";
    Ta chaîne se trouvera en position n° 3.
    Ok, merci, je teste dès que possible ;-)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut Coup dans l'eau
    Bonjour,

    Ca ne marche pas. Ca me renvoit "du document" (group(1) et rien pour group é ou 3. Je creuse ...

    [Edit] bon, avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern regexp = Pattern.compile("\\[\\w*,\\w*,(\\w*)]",Pattern.CASE_INSENSITIVE);
    Ca semble bien fonctionner ... donc résolu

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Effectivement...

    J'ai confondu le \w de Word avec le w de Whitespace (qui est en fait noté \s).

    Le code exact de ma proposition est donc celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex="\\[\\s*(.*?)\\s*,\\s*(.*?)\\s*,\\s*(.*?)\\s*\\]";
    Je m'étonne cependant de la compilation de ta proposition : en effet, tu n'échappes pas le caractère ]. C'est un peu bizarre que la compilation de la regex passe sans souci.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut
    Citation Envoyé par dingoth Voir le message
    (...)

    Je m'étonne cependant de la compilation de ta proposition : en effet, tu n'échappes pas le caractère ]. C'est un peu bizarre que la compilation de la regex passe sans souci.
    Et bien, le premier coup ca a très bien passé, puis j'ai travaillé sur un problème de répertoire et au retour, ca n'allait plus. J'ai donc mis "résolu" un peu vite, mais je me aperçu que je pouvais utiliser directement les deux premiers "termes" qui sont invariants (J'aurais pu y penser avant ). Ca donne ce motif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \\[Macro du document source, Modules, (.*?)\\]
    Ton dernier motif n'est pas perdu : il pourrait bien me servir pour une extension future de l'appli ;-)

    Merci pour ton intérêt.

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

Discussions similaires

  1. [REGEXP] Trouver des messages dans des fichiers
    Par panda31 dans le forum Général Python
    Réponses: 2
    Dernier message: 26/11/2008, 14h37
  2. [regexp] regexp date entre deux années en javascript
    Par Julien Rozier dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/05/2008, 16h49
  3. [Regexp] pattern pour trouver des fichiers par exclusion d'extension
    Par mnementh64 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 07/09/2006, 10h34
  4. Réponses: 4
    Dernier message: 26/04/2006, 10h09
  5. [RegExp] regexp
    Par marcha dans le forum Langage
    Réponses: 5
    Dernier message: 23/02/2006, 16h18

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