Java regex sur les doubles
Je suis en train de vérifier pour un double qui a un maximum de 13 chiffres avant la virgule et le point décimal et les numéros suivants sont facultatifs. Ainsi, l'utilisateur peut écrire un nombre entier ou un nombre avec des décimales.
Pour commencer, j'ai eu ceci:
if (check.matches("[0-9](.[0-9]*)?"))
J'ai été par le biais de plusieurs pages sur Google et n'ai pas eu de chance dans l'obtention de ce travail malgré les différents efforts. Mon idée était de faire comme ceci mais ça ne fonctionne pas:
[0-9]{1,13}(.[0-9]*)?
Comment puis-je le faire?
Pourquoi ne pas simplement analyser le
\\. OU [.] Les deux œuvres, mais ne pas écrire juste '.'
double
et vérifier value < 10000000000000
?\\. OU [.] Les deux œuvres, mais ne pas écrire juste '.'
OriginalL'auteur Duane | 2013-01-28
Vous devez vous connecter pour publier un commentaire.
N'oubliez pas d'échapper à la dot.
OriginalL'auteur John Kugelman
Tout d'abord vous avez besoin pour échapper à la dot(en java, ce serait
[0-9]{1,13}(\\.[0-9]*)?
). Deuxième de tous, n'oubliez pas il y a aussi une autre représentation populaire de double - scientifique. Donc, ce1.5e+4
est de nouveau valide d'un nombre double. Et enfin ne pas oublier le double du nombre peut être négatif, ou peut-être pas toute une partie du tout. E. g.-1.3
et.56
sont valables doubles.OriginalL'auteur Ivaylo Strandjev
Vous avez besoin pour échapper à la dot et vous avez besoin au moins sur les chiffres après le point
Voir ici sur Regexr
OriginalL'auteur stema
John réponse est proche. Mais un " - " doit être ajouté en cas de négative, si vous l'acceptez les valeurs négatives. Donc, il devrait être modifié pour
-?[0-9]{1,13}(\.[0-9]*)?
OriginalL'auteur Trenton D. Adams
si vous avez besoin de valider décimal avec les virgules et les points négatifs:
Bonne chance.
OriginalL'auteur august0490