Expression régulière pour nombre décimal [Résolu]

Messages postés
275
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
7 juillet 2014
- - Dernière réponse : rgdu86
Messages postés
275
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
7 juillet 2014
- 27 janv. 2009 à 22:11
Bonjour à tous,

J'ai une question toute simple pour vous mais sur laquelle je buttes depuis un moment.

J'ai sur un de mes Form un TextBox dans lequel je souhaiterais faire un contrôle de saisie.

Le contrôle de saisie consisterais à vérifier que les données entrées sont :

- soit un chiffre et un seul compris entre 0 et 3,
- soit un nombre décimal avec un chiffre et un seul, compris également entre 0 et 3, une virgule (ou un point à la rigueur) suivi d'un à trois chiffres compris entre 0 et 9.

Par exemple :

Serait autorisé "0" , "1" , "2" ou "3" ou encore "1.5" , "1,5" , "0.123" ou encore "2,24"

Ne serait pas autorisé "01" , "01.12" , "20,245" ou encore "1,1453"

Voilà en espérant avoir été assez clair.

Par avance, merci à ceux qui me répondront.

Bien cordialement.

rgdu86
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
65
3
Merci
Hello,

Si tu as besoin de travailler avec des regex, je te conseil un petit outil gratuit, Expresso.

E gros, ça doit donner quelque chose comme ça :
^[0-3]([\.|,]\d{1,3})?$

(Expresso peut même te générer directement le code de la regex en c#, et avec le commentaire !

//  using System.Text.RegularExpressions;

/// <summary>
///  Regular expression built for C# on: mer., déc. 10, 2008, 07:07:35
///  Using Expresso Version: 3.0.2745, http://www.ultrapico.com
/// 
///  A description of the regular expression:
/// 
///  Beginning of line or string
///  Any character in this class: [0-3]
///  [1]: A numbered capture group. [[\.|,]\d{1,3}], zero or one repetitions
///      [\.|,]\d{1,3}
///          Any character in this class: [\.|,]
///          Any digit, between 1 and 3 repetitions
///  End of line or string
/// 
///
/// </summary>
public static Regex regex = new Regex(
      "^[0-3]([\\.|,]\\d{1,3})?$",
    RegexOptions.IgnoreCase
    | RegexOptions.Singleline
    | RegexOptions.CultureInvariant
    | RegexOptions.IgnorePatternWhitespace
    | RegexOptions.Compiled
    );

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

P.S Et Oui, les commentaires sont en anglais

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Commenter la réponse de SharpMao
Messages postés
275
Date d'inscription
mercredi 23 mai 2007
Dernière intervention
7 juillet 2014
74
0
Merci
Ok, merci pour ta réponse, c'est pile poil ce qu'il me fallait.

Désolé d'avoir répondu aussi tardivement.

Encore merci.

Bien cordialement.

rgdu86
Commenter la réponse de rgdu86

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.