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 :

Reg Exp Java


Sujet :

Langage Java

  1. #1
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut Reg Exp Java
    Bonjour,

    J'ai une chaine de caractère dans laquelle je peux avoir en fin de chaine "$PP", mais pas dans tous les cas. Le but étant de ne pas récupérer la chaine "$PP" dans la variable que je récupere.

    J'avais penser utiliser ? de cette manière :
    ou
    Mais ça ne marche pas , quelqu'un aurait une piste ?

    Merci d'avance !!

  2. #2
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Si tu dois reconnaitre, exactement, la chaîne "AA$C" puis des lettres (ou chiffres ou _) puis optionnellement "$PP" : ça marche !
    Qu'est ce qui ne marche pas ? Tu veux enlever le $PP si tu le trouves à la fin ?

  3. #3
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    C'est ca , si la chaine $PP se trouve a la fin je souhaite ne pas la récupérer

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, si j'ai bien compris, cette séquence n'apparaît qu'à la fin de la chaîne. Et si elle y est, tu veux la supprimer.

    Tu peux donc utiliser les méthodes de String : endsWith et substring, ce sera plus simple.

    Autre solution rapide mais qui ne fonctionne pas si ta chaîne "$PP" apparait plusieurs fois et que tu ne veux supprimer que le dernier : taString = taString.replace("$PP", "");

  5. #5
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Merci pour l'info , c'est ce que j'ai utilisé en attendant.

    Ce probleme ne peut pas etre réglé juste en utilisant les reg Exp ?
    Cela serait qd même plus propre.

    Merci !!

  6. #6
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,
    pour préciser que les parenthèses ne capturent pas leur contenu, tu peux utiliser "?:"
    si tu essayais cela

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Se pourrait il que ton problème provienne de ceci: http://java.developpez.com/faq/java/...RING_antislash

    (grosso modo dans une chaine java il faut doubler les antislashs, par ex si tu veux une reg exp \p doit être notée \\p dans la chaine java.

  8. #8
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Ton expression rationnelle marche. Le "non capturing group" (?:...) permet de rechercher une expression sans la copier dans le résultat mais c'est inutile dans ton cas puisque tu cherches également la fin de la chaîne ($) qui est situé après ! Qu'est-ce que tu veux dans ton résultat ?
    Le but étant de ne pas récupérer la chaine "$PP" dans la variable que je récupere.
    • Si tu veux la partie entre "AA$C" et l'éventuel "$PP" ou la fin, ton expression est bonne : tu auras ton résultat dans group(1).
    • Si tu veux la partie de "AA$C" jusqu'à la fin, sans l'éventuel "$PP", il suffit de changer ton expression en :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      "^(AA\\$C\\w+)(?:\\$PP)?$"
      et de prendre également le groupe 1.

  9. #9
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Citation Envoyé par jean.2edi Voir le message

    C'est exactement ce que je voulais faire , d'ailleurs j'ai également testé comme cela et ca fonctionne aussi ....(pourtant ce matin ....):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "^(AA\\$C\\w+)(\\$PP)?$"

    Merci beaucoup pour vos explications !

  10. #10
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Comme dis plus haut, le "non capturing group" ne sert à rien dans ton cas. Il ne sert que si tu cherches une partie de la chaîne !

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

Discussions similaires

  1. Reg Exp Java
    Par Katachana dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 23/04/2009, 09h47
  2. galère avec les reg exp
    Par glouffy6 dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2007, 16h34
  3. Réponses: 3
    Dernier message: 10/10/2006, 11h15
  4. reg exp : caracteres speciaux
    Par frouge dans le forum Langage
    Réponses: 2
    Dernier message: 07/06/2006, 17h49

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