Мод 11 контрольная цифра с регулярным выражением

Можно ли создать процедуру проверки контрольных цифр в моде 11 с помощью выражения regex?

Нубмер представляет собой 10-значный номер,

Шаг 1: A = (2-й номер * 2) + (3-й номер * 4) + (4-й номер * 8) + (5-й номер * 5) + (6-й номер * 10) + (7-й номер * 9) + (8-й номер * 7) + (9 число * 3))

Шаг 2: B = A / 11 (игнорировать остаток)

Шаг 3: C = B * 11

Шаг 4: D = A - C

Шаг 5: 11 - D должен = 10-ая цифра

3 ответа

Решение

Нет. По сути, вы хотите здесь выполнять математику, и это не совсем подходит для регулярных выражений, которые просто относятся к шаблонам.

Я имею в виду, теоретически это, безусловно, возможно - вы могли бы перечислить все действительные числа и объединить их в одно огромное регулярное выражение. Однако это практически неосуществимо.

Используйте регулярные выражения в качестве конечного автомата. http://quaxio.com/triple/

Regex выполняет сопоставление с образцом, а не анализирует. Вам нужно разобрать номер, чтобы получить цифры. Я бы предложил использовать регулярное выражение, чтобы убедиться, что это 10-значное число, а затем ToString() и разделить его.

Другие вопросы по тегам