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

rgdu86 275 Messages postés mercredi 23 mai 2007Date d'inscription 7 juillet 2014 Dernière intervention - 9 déc. 2008 à 22:52 - Dernière réponse : rgdu86 275 Messages postés mercredi 23 mai 2007Date d'inscription 7 juillet 2014 Dernière intervention
- 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 

2 réponses

Répondre au sujet
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 10 déc. 2008 à 07:13
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SharpMao
rgdu86 275 Messages postés mercredi 23 mai 2007Date d'inscription 7 juillet 2014 Dernière intervention - 27 janv. 2009 à 22:11
0
Utile
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.