Напишите регулярное выражение, которое идентифицирует числа, кратные 11

Для исследования, которое я делаю, каждому присваивается уникальный номер. Все уникальные числа делятся на 11 (это делается потому, что последовательные числа сильно отличаются друг от друга).

В идеале я хотел бы использовать регулярное выражение, которое можно использовать для проверки того, что число, введенное в поле study_id, является приемлемым значением, например, делится на 11. Я буду иметь ведущие нули максимум до 5 цифр. Итак:

  • 00011 - Приемлемо
  • 00012 - неприемлемо
  • 13211 - Приемлемо
  • 13221 - неприемлемо

Любые предложения с благодарностью получены

1 ответ

Решение

Это невозможно, потому что нет текстовых сходств между числами, которые делятся на 11, Regex используется для сопоставления текста.

Например 000165 делится на 11 как есть 00011,

Лучший способ проверить число - разделить его на 11 и посмотреть, есть ли остаток. Так что в Excel вы бы сделали это:

=IF(MOD(165, 11) = 0, "VALID", "INVALID")

Или C# вы бы сделали что-то вроде этого

bool isValid = 165 % 11 == 0;

(Отказ от ответственности Я не знаком с ODK, поэтому не могу предоставить подходящий образец; я только что угадал, на каком языке лучше писать)

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