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 :

Expression régulière .net


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut Expression régulière .net
    Bonjour ,

    j'ai actuellement un souci avec les expressions régulières.
    Je veux pouvoir déterminer si une chaîne de caractère est un nombre.
    voici le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     string sPattern = @"[+|-]?\d+.\d+$";
     
     string resultat= Regex.IsMatch("1,1",sPattern ) ?"succes" :"échec";
    après exécution, le résultat est succes.
    pourtant dans ma chêne le séparateur de décimal est la virgule.

    Je trouve ça anormal .

    Est ce que quelqu'un saurait comment distinguer un point d'une virgule dans une expression régulière ?

    merci d'avance.

    Comment distinguer

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 169
    Points
    169
    Par défaut
    Salut,

    Je suis loin d'être un pro des expressions régulières, mais le . symbolise n'importe quel caractère il me semble. Essaye avec \.

    Sinon pour ce genre de test tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double unDouble;
    double.TryParse("1,1", out unDouble);
    (qui possède une surcharge pour spécifier le format si jamais).

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 672
    Points : 1 172
    Points
    1 172
    Par défaut
    Bonjour,
    de mémoire, il me semble que le point (.) employé seul représente tout caractère donc aussi bien le point que la virgule.
    Pour l'avoir au sens littéral, il faut donc l'échapper (\.).

  4. #4
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    Le résultat est pareil ajoutant un backslash.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par yuriyan Voir le message
    Le résultat est pareil ajoutant un backslash.
    étonnant, es-tu sûr d'avoir correctement placé le backslash ?

    [+|-]?\d+\.\d+$

    J'ai testé dans une application console avec la valeur "1,1" et ça ne matche pas :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine(Regex.IsMatch("1,1", @"[+|-]?\d+\.\d+$") ? "succes" : "echec");

  6. #6
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    merci
    je pense que que j'ai eu la réponse ça marche.

    merci.

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Ok, alors n'oublie pas de cliquer sur le bouton en bas de cette page

  8. #8
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    merci
    je pense que que j'ai eu la réponse ça marche.

    merci.

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

Discussions similaires

  1. Expressions régulières .Net dans du Java ?
    Par NicoV dans le forum Collection et Stream
    Réponses: 0
    Dernier message: 13/05/2011, 11h42
  2. Expression régulière et .NET
    Par The eye dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 26/04/2009, 16h43
  3. [.NET] Expression régulière
    Par neptune dans le forum Framework .NET
    Réponses: 6
    Dernier message: 15/05/2007, 12h59
  4. [VB.net][vs2005] Problème avec les expressions régulières
    Par zouhib dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/06/2006, 15h56
  5. [VB.NET][Expressions régulières] GroupCollection
    Par zouhib dans le forum Windows Forms
    Réponses: 8
    Dernier message: 02/06/2006, 17h50

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