9
votes

Regex pour vérifier si un numéro est même

pouvons-nous avoir une regex pour détecter si un numéro est même?

Je me demandais si nous pouvons avoir une regex pour le faire au lieu d'usual % ou des opérations bits.

merci pour des réponses :)


2 commentaires

Les regèges fonctionnent sur des cordes, mais la même-même est une propriété de chiffres. Quel format vos numéros sont-ils potentiellement en format string?


S'il vous plaît: ne vous émervegez que à ce sujet, ne le faites pas. Les types d'intégration primitive (octets, courts-intestins, int et long) sont conçus pour stocker des nombres. BigInteger est fait pour stocker des nombres vraiment gros. Les chaînes sont pour stocker des chaînes.


6 Réponses :


56
votes

Vous pouvez essayer: xxx

explication:

  • ^ : démarrez l'ancre.
  • -? : signe négatif optionnel.
  • \ d * : zéro ou plusieurs chiffres.
  • [02468] : Char Classe pour correspondre à un 0 ou 2 ou 4 ou 6 ou 8
  • $ : ancreur de fin

2 commentaires

la plus rapide et avec explication. gloire.


Nice que vous n'avez pas oublié les valeurs négatives.;)



1
votes

sûr, vous venez de vérifier si le dernier numéro est un 0/2/4/6/8


0 commentaires

1
votes

Essayez ceci, je ne suis pas sûr que si c'est la même syntaxe en Java:

^\d*(2|4|6|8|0)$


0 commentaires

3
votes

S'il s'agit d'une chaîne, vérifiez simplement si findien (0) || Finwith (2) || .. retourne vrai. Si c'est le numéro, c'est très simple.


0 commentaires

22
votes

Étant donné que la bonne réponse a déjà été donnée, je dirons que la regex ne serait pas mon premier choix pour cela.

  • Si le nombre correspond à la plage , utilisez %
  • Si ce n'est pas le cas, vous pouvez utiliser biginteger.remainder (..) , mais peut-être vérifier si le dernier char représente un chiffre même plus efficace.

1 commentaires

Une autre astuce consiste à vérifier que le chiffre le plus à droite est 0 ou 1 qui sera: (N & 1) == 1. True signifie étrange, sinon même



0
votes

n'utilisez jamais regex pour un travail qui peut être facilement effectué autrement.

Je suis tombé sur ce blog Microsoft qui dit la même chose: Lien


1 commentaires

Pouvez-vous élaborer ce qui est dans le lien ou pourquoi ne pas utiliser une regex dans ce cas?