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

Java Discussion :

[Regex] Remplacer le contenu d'un groupe


Sujet :

Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut [Regex] Remplacer le contenu d'un groupe
    Bonjour a tous,

    je suis actuellement en train de cherché comment faire pour effectué un remplacement dans un texte.

    Par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    VS_VERSION_INFO VERSIONINFO
     FILEVERSION 1,0,0,1
     PRODUCTVERSION 1,0,0,1
     FILEFLAGSMASK 0x3fL
    #ifdef _DEBUG
     FILEFLAGS 0x1L
    #else
     FILEFLAGS 0x0L
    #endif
    Dans ce texte, je cherche a remplacer le dernier chiffre de FILEVERSION.

    Voici la regex que j'ai construit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern p=Pattern.compile("\\s*FILEVERSION\\s*(?:\\d+[,\\.]){3}(\\d+)\\s*");
    Celle-ci match bien la ligne, mais impossible de récuperer le dernier chiffre.
    Pourtant j'ai bien mis des parenthese autour de celui-ci.

    Savez-vous comment je dois faire pour capturer ceci afin que je puisse le remplacer ?


    Je vous remercie de votre aide


    EDIT: j'ai trouver une solution via cette regex et ce code (que je ne trouve pas propre du tout)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ^\\s*FILEVERSION\\s*(?:\\d+[,\\.]){3}(\\d+)\\s*$
     
    ....
    allLines[i].substring(0, m.start(1)) + newValue+ allLines[i].substring(m.end(1));

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Voilà qui devrait t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            String contenu = " FILEVERSION 1,0,0,1 ";
            String nouvelleVersion = "5";
     
            Pattern p = Pattern.compile("\\s*FILEVERSION\\s*(?:\\d+[,\\.]){3}(\\d+)\\s*");
            Matcher matcher = p.matcher(contenu);
            int indiceParentheseCapturante = 1;
     
            matcher.find();
            String contenuMisAJour =
                contenu.substring(0, matcher.start(indiceParentheseCapturante)) + nouvelleVersion
                    + contenu.substring(matcher.end(indiceParentheseCapturante), contenu.length());
     
            System.out.println(contenuMisAJour); // affiche FILEVERSION 1,0,0,5
    Romain.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    Merci, tu as poster en même temps que je viens d'éditer mon premier post.
    Nos solutions sont équivalentes

    Merci tout de même

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

Discussions similaires

  1. Remplacer le contenu des cellules de destination
    Par cyraile dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2006, 08h23
  2. [XSLT] remplacer le contenu d'un noeud
    Par casgr1 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 29/06/2006, 09h50
  3. [Regex] Remplacement d'une chaîne avec $
    Par TSnarfK dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/01/2006, 10h44
  4. [Regex]Remplacement d'un nombre indéfinie de motif
    Par gege2061 dans le forum Langage
    Réponses: 5
    Dernier message: 14/01/2006, 17h27
  5. Remplacer le contenu d'un div par un autre
    Par prgasp77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/10/2004, 23h48

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