Как насчет этого:
flagZero = 3
string = '42'
new_string = flagZero * '0' + string
new_string
Вывод:
00042
Попробуйте это
^(0?[1-9])|([1-4][0-9])|(50)$
Идея этого regex состоит в том, чтобы разломать проблему на случаи
Регулярные выражения работают над символами (в этом случае цифры), не числа. Вы должны иметь отдельный шаблон для каждого количества цифр в Вашем шаблоне и объединить их с | (операция ИЛИ) как другие ответы предложили. Однако рассмотрите просто проверку, если текст является числовым с регулярным выражением (как [0-9]+
) и затем преобразование в целое число и проверка целого числа в диапазоне.
Вы не можете легко сделать проверки диапазона с регулярными выражениями. Вы можете - с некоторой работой - разрабатывают шаблон, который распознает числовой диапазон, но это обычно довольно сложно, и трудно изменить для немного отличающегося диапазона.
Вы - более обеспеченное повреждение этого в две части.
Распознайте шаблон числа (^\d+$
).
Проверьте диапазон того числа в прикладной программе.