Expression régulière Gamme avec décimale 0.1 - 7.0

J'ai besoin d'une expression régulière qui doit valider le point décimal ainsi que de la plage. Totalement 3 nombre devrait être présent y compris le point et la valeur doit être supérieure à 0.0. Cela signifie que la plage valide est comprise entre 0,1 à 7.0.

J'ai utilisé les regex suivante: ^\\d{1,1}(\\.\\d{1,2})?$

Il fonctionne bien sauf pour la gamme de validation. De quoi ai-je besoin de changer?

  • Je recommande de ne pas utiliser une expression régulière pour cette tâche, si possible. (E. g. utiliser seulement comme la première étape si à tous.)
  • Votre regex permet d'utiliser des entiers (5) et des nombres décimaux avec une précision plus élevée (0.11) qui ne devrait pas être autorisé en fonction de votre texte de la question. Que voulez-vous vraiment?
  • if(s.matches("^\\d{1,1}(\\.\\d{1,2})?$") && Double.valueOf(s) >= 0.1 && Double.valueOf(s) <= 7.0) { ... }
InformationsquelleAutor siva | 2012-03-21