J'ai la regex suivante que j'utilise pour correspondre / valider des nombres décimaux: La sortie est la suivante: p> donc tout Les nombres positifs passent à l'exception des nombres négatifs.
Comment puis-je prolonger mon expression régulière pour accepter également le nombre négatif, par exemple. accepter le premier personnage "-"? p> p>
3 Réponses :
Le motif ne doit pas nécessairement être celui compliqué, essayez ceci: -? code> est la partie qui correspond à la fois avec et sans le - code> signe. ? code> signifie 1 ou 0 occurrences. P> p>
Quelle est la différence entre [0-9] \ d * code> et \ d + code>?
@ MauricePerry Il n'y a pas de différence ici, mais dans mon cas, j'avais [1-9] code> et | 0 code> à la fin pour vous assurer que les chiffres de 0284 ne seront pas assortis, Je le réparerai.
Vous n'avez pas besoin de votre regex existant pour correspondre aux décimales positives / négatives. Vous devez juste inclure un -? Code> avant votre modèle, pour correspondre à 1 ou à zéro '-'. final String REG_PATTERN_VALID_DECIMAL_NUMBER = "-?\\d+(?:\\.\\d+)?";
Si vous préparez un caractère facultatif - il devrait fonctionner:
final String REG_PATTERN_VALID_DECIMAL_NUMBER = "((?<!\\S)-?\\d+(?:\\.\\d+)?(?!\\S))|.";
Utilisez
-? Code> qui correspondra à- code> zéro fois ou une fois, rendant efficacement le- code> en option.