0
votes

REGEX correspondent également à des nombres décimaux négatifs

J'ai la regex suivante que j'utilise pour correspondre / valider des nombres décimaux: xxx

La sortie est la suivante: xxx

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 "-"?


1 commentaires

Utilisez -? qui correspondra à - zéro fois ou une fois, rendant efficacement le - en option.


3 Réponses :


1
votes

Le motif ne doit pas nécessairement être celui compliqué, essayez ceci: xxx

-? est la partie qui correspond à la fois avec et sans le - signe. ? signifie 1 ou 0 occurrences.


2 commentaires

Quelle est la différence entre [0-9] \ d * et \ d + ?


@ MauricePerry Il n'y a pas de différence ici, mais dans mon cas, j'avais [1-9] et | 0 à la fin pour vous assurer que les chiffres de 0284 ne seront pas assortis, Je le réparerai.



1
votes

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+)?";


0 commentaires

1
votes

Si vous préparez un caractère facultatif - il devrait fonctionner:

final String REG_PATTERN_VALID_DECIMAL_NUMBER = "((?<!\\S)-?\\d+(?:\\.\\d+)?(?!\\S))|.";


0 commentaires