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

 C++ Discussion :

Replacer les mots en majuscule


Sujet :

C++

  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 Replacer les mots en majuscule
    Bonjour a tous,
    je cherche a remplacer toutes les chaines en majuscule qui ne sont pas entre quote ou double quote.
    Donc par exemple dans la chaine "'L'+TEST;" je ne veux remplacer que TEST

    Donc voici ce que j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string source="\"L\"+TEST;";
    regex regVar ("[^\"']([A-Z0-9]+)[^\"']");
    string replacement="TR(\"$1\")";
    string newSource=regex_replace (source,regVar,replacement);
    Donc ici je cherche a remplacer TEST par TR("TEST")

    malheureusement le résultat est plutôt "L"TR("TEST")
    Donc le '+' et le ';' ont été supprimé.

    Savez vous ce trouve mon erreur ?
    Je vous remercie par avance pour votre aide

    EDIT: résolu, je suis passer par une methode plus rapide

  2. #2
    Invité
    Invité(e)
    Par défaut
    pour l'explication...

    [^\"']([A-Z0-9]+)[^\"']
    [^\"']
    tu cherches un caractères qui est pas "
    le premier que tu trouves, c'est L.
    Après tu cherches un caractere alpha.
    mais apres L c'est ", donc tu echoues.

    Tu cherches un caractère qui est pas ". Tu trouves +
    tu cherches des caractères alpha.
    Tu captures TEST.
    et après tu termines avec le point virgule.

    Au final tu parcours ta chaine jusqu'au +.
    Tu captures depuis le + au point virgule que TEST.
    Il te reste donc "L" ainsi que ta capture qui est TEST.
    ->"L"TEST

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/05/2011, 18h59
  2. Réponses: 2
    Dernier message: 27/08/2009, 17h10
  3. [RegEx] Trouver les mots en majuscule dans une chaine
    Par Boeing dans le forum Langage
    Réponses: 2
    Dernier message: 15/10/2007, 23h44
  4. mettre en majuscules tous les mots suivis d'un espace 2
    Par teophane dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 12/07/2007, 08h51
  5. mettre en majuscule tous les mot suivi d'un espace
    Par teophane dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 06/07/2007, 16h27

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