RegEx числовая проверка

Как насчет этого:

flagZero = 3
string = '42'

new_string = flagZero * '0' + string
new_string

Вывод:

00042
12
задан Tomalak 25 March 2009 в 12:32
поделиться

4 ответа

Попробуйте это

^(0?[1-9])|([1-4][0-9])|(50)$

Идея этого regex состоит в том, чтобы разломать проблему на случаи

  • 0? [1-9] заботится о единственном случае цифры, допуская дополнительное предшествование 0
  • [1-4] [0-9] заботится обо всех числах от 10 до 49. Это также allwows для предшествования 0 на единственной цифре
  • 50 заботится о 50
16
ответ дан 2 December 2019 в 06:45
поделиться

Регулярные выражения работают над символами (в этом случае цифры), не числа. Вы должны иметь отдельный шаблон для каждого количества цифр в Вашем шаблоне и объединить их с | (операция ИЛИ) как другие ответы предложили. Однако рассмотрите просто проверку, если текст является числовым с регулярным выражением (как [0-9]+) и затем преобразование в целое число и проверка целого числа в диапазоне.

5
ответ дан 2 December 2019 в 06:45
поделиться

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

Вы - более обеспеченное повреждение этого в две части.

  1. Распознайте шаблон числа (^\d+$).

  2. Проверьте диапазон того числа в прикладной программе.

2
ответ дан 2 December 2019 в 06:45
поделиться

^0? [1-50] {1,2} $

0
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: