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 :

RegExp : rajouter un "m" après chaques nombres


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut RegExp : rajouter un "m" après chaques nombres
    J'ai un string qui contient une formule mathématique.
    J'aimerais indiquer de chaque nombre est de type Decimal donc en rajoutant "m" à la suite de chacun.

    Mon matchvars détecte bien qu'il y a 6 nombres, mais je n'arrive pas à les remplacer correctement.

    Je voudrais obtenir :
    en entrée : "(18.45+12.36*9)/12.3*15.6+2"
    en sortie : "(18.45m+12.36m*9m)/12.3m*15.6m+2m"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     string formule = "(18.45+12.36*9)/12.3*15.6+2";
         Regex regVars = new Regex(@"([0-9]+.?[0-9]*)");
         MatchCollection matchVars = regVars.Matches(formule);
        Response.Write(matchVars.Count);
        for (int k = 0; k < matchVars.Count; k++)
        {
            formule = formule.Replace(matchVars[k].Value.ToString(), matchVars[k].Value.ToString() + "m"); //FAUX
        }
    
        Response.Write(formule);
    Au final, j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     string rep = Regex.Replace(formule, @"[0-9]+(\.[0-9]+)?", @"$0m");
    J'apprendrais à mieux utiliser Matches une prochaine fois.

  2. #2
    Membre Expert Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string test = "blablabla1256.365blablabla125";
    Regex r = new Regex(@"[0-9]+(\.[0-9]*)?");
    test = r.Replace(test, @"$0m");

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

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