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 : mauvaise détection


Sujet :

C#

  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 : mauvaise détection
    bonjour,

    j'ai un string qui contient des v8, v9....
    Je souhaite détecter ces vXX pour les remplacer.
    Mais avec le code que j'ai fait ci-dessous, à chaque fois c'est le même v qu'il trouve.
    Pour le code ci-dessous par exemple, il affiche :
    Nombre : 2
    n°0 : v4
    n°1 : v4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    string sFormuleValo = "(-1+v4)*(v6-1)";
    Regex regVars = new Regex(@"(v[0-9]+)");
    Match matchVars = regVars.Match(sFormuleValo);
    if (matchVars.Success)
    {
        Response.Write("Nombre : "+matchVars.Groups.Count+"<br>");
        for (int k = 0; k < matchVars.Groups.Count; k++)
        {
                        Group gVar = matchVars.Groups[k];
                        if (gVar.Success)
                        {
                            Response.Write("n°"+k+" : "+gVar.Value+"<br>");
     
                        }
         }                 
    }

  2. #2
    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
    J'ai corrigé.

    Il fallait utiliser MatchCollection et Matches.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    string sFormuleValo = "(-1+v4)*(v6-1)";
    Regex regVars = new Regex(@"(v[0-9]+)");
    MatchCollection matchVars = regVars.Matches(sFormuleValo);
    Response.Write("Nombre : "+matchVars.Count+"<br>");
    for (int k = 0; k < matchVars.Count; k++)
    {
                    Match m = matchVars[k];
                    Response.Write("n°"+k+" : "+m.Value+"<br>");
     }

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

Discussions similaires

  1. Mauvaise détection de device avec UADetector
    Par stc074 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 04/03/2015, 18h59
  2. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

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