Regex -> сопоставить число между 000001 и 999999 - PullRequest
0 голосов
/ 10 июня 2018

Я нахожусь в Linux, и мне нужно сделать expr, чтобы сопоставить 6 цифр с этим диапазоном : от 000001 до 999999

Я застрялс '[0-9]{5}[1-9]', но я не могу сопоставить числа, которые заканчиваются на 0, как 000010 Я думал о '[0-9]{6}|?![0]{6}', чтобы исключить "000000"

Как я могу использовать ?! и / или есть лидругие решения?

РЕДАКТИРОВАТЬ: решение = ((?!000000)[0-9]{6})

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

решение = ((?!000000)[0-9]{6})

0 голосов
/ 10 июня 2018

Использование регулярных выражений для проверки того, что число находится в диапазоне, не является оптимальным.Вместо этого вы можете проверить длину входов и, если она находится в диапазоне, используя

a=000001
if ((${#a} == 6 && a > 0 && a <= 999999));  then
  echo "foo"
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...