Détails
Expression régulière simple pour une décimale avec une précision de 2
Quelle est l'expression régulière pour une décimale avec une précision de 2 ?
Exemples valides :
123.12
2
56754
92929292929292.12
0.21
3.1
Exemples non valides:
12.1232
2.23332
e666.76
Le point décimal peut être facultatif, et les nombres entiers peuvent également être inclus.
258
3
Les jetons regex valides varient selon l'implémentation. Une forme générique est :
Plus compact :
Les deux supposent que les deux ont au moins un chiffre avant et un après la décimale.
Pour exiger que la chaîne entière soit un nombre de cette forme, il faut envelopper l'expression dans des balises de début et de fin comme (dans la forme de Perl) :
Pour faire correspondre des nombres sans chiffre avant la décimale (
.12
) et des nombres entiers ayant un point arrière (12.
) tout en excluant la saisie d'un seul point (.
), essayez ce qui suit :Ajouté
Enveloppe la partie fractionnaire dans
()?
pour la rendre optionnelle. Sachez que cela exclut des formes telles que12.
Incluant qui serait plus comme^^d+\\\?\d{0,2}$
.Ajouté
Utilisez
^\d{1,6}(\.\d{1,2})?$
pour arrêter la répétition et donner une restriction à la partie entière de la valeur décimale.Et comme les expressions régulières sont horribles à lire, et encore moins à comprendre, voici l'équivalent verbeux :
Vous pouvez remplacer
[0-9]
par\d
dans la plupart des implémentations d'expressions régulières (y compris [PCRE][1], la plus courante). J'ai laissé l'équivalent de[0-9]
car je pense que c'est plus facile à lire.Voici également le script Python simple que j'ai utilisé pour le vérifier :
[1] : http://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions
Ne devrez-vous pas prendre en compte le " e " de " e666.76 " ?
Avec