мод 11 контрольной цифры с регулярным выражением
-
09-09-2019 - |
Вопрос
Можно ли создать процедуру проверки контрольных цифр mod 11 с помощью оператора регулярного выражения?
Номер представляет собой 10-значное число,
Шаг 1:A = (2-й номер * 2) + (3-й номер * 4) + (4-й номер * 8) + (5-й номер * 5) + (6-й номер * 10) + (7-й номер * 9) + (8-й номер * 7) + (9-е число * 3))
Шаг 2:B = A/11 (игнорировать остаток)
Шаг 3:С = В * 11
Шаг 4:Д = А - С
Шаг 5:11 - Д должен = 10-я цифра
Решение
Нет, по сути, вы хотите заниматься здесь математическими вычислениями, а это не совсем подходит для регулярных выражений, которые касаются только шаблонов.
Я имею в виду, теоретически это, конечно, возможно - вы можете перечислить все допустимые числа и объединить их в одно огромное регулярное выражение.Однако это не практически достижимый.
Другие советы
Используйте регулярное выражение как конечный автомат. http://quaxio.com/triple/
Regex выполняет сопоставление с образцом, а не синтаксический анализ.Вам нужно разобрать число, чтобы получить цифры.Я бы предложил использовать регулярное выражение, чтобы убедиться, что это 10-значное число, а затем ToString() и разрезать его.