mod 11 chiffre de contrôle avec regex
-
09-09-2019 - |
Question
Est-il possible de créer une routine de chiffres de contrôle mod 11 avec une instruction regex ?
Le numéro est un nombre à 10 chiffres,
Étape 1:A = (2ème chiffre * 2) + (3ème chiffre * 4) + (4ème chiffre * 8) + (5ème chiffre * 5) + (6ème chiffre * 10) + (7ème chiffre * 9) + (8ème chiffre * 7) + (9ème chiffre * 3))
Étape 2:B = A / 11 (ignorer le reste)
Étape 3:C = B * 11
Étape 4:D = A-C
Étape 5 :11 - D doit = le 10ème chiffre
La solution
Non, fondamentalement, vous voulez faire des mathématiques ici, et cela ne correspond pas vraiment aux expressions régulières qui concernent uniquement des modèles.
Je veux dire, théoriquement c'est certainement possible - vous pouvez lister tous les nombres valides et les combiner en une énorme expression régulière.Cependant, ce n'est pas pratiquement réalisable.
Autres conseils
Utilisez l'expression régulière comme machine à états finis. http://quaxio.com/triple/
Regex effectue une correspondance de modèles, pas vraiment une analyse.Vous devez analyser le numéro pour obtenir les chiffres.Je suggérerais d'utiliser l'expression régulière pour m'assurer qu'il s'agit d'un nombre à 10 chiffres, puis de le ToString() et de le découper.