Подтвердить что ты не робот

Что такое регулярное выражение для "Любое положительное целое число, исключая 0",

Как можно улучшить ^\d+$, чтобы запретить 0?

ИЗМЕНИТЬ (сделайте его более конкретным):

Примеры, позволяющие:
1
30
111
Примеры запрета:
0
00
-22

Не имеет значения, допустимы ли положительные числа с начальным нулем или нет (например, 022).

Это для реализации Java JDK Regex.

4b9b3361

Ответ 1

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

^[1-9]\d*$

... и некоторые отступы превышают 30 символов, так что предел ответа :-).

Вот демо

Ответ 2

Извините, что пришел поздно, но OP хочет разрешить 076, но, вероятно, НЕ хочет разрешать 0000000000.

Итак, в этом случае нам нужна строка из одной или нескольких цифр, содержащих по крайней мере один ненулевой. Это

^[0-9]*[1-9][0-9]*$

Ответ 3

Вы можете попробовать отрицательное утверждение:

^(?!0+$)\d+$

Ответ 4

Попробуйте это, этот лучше всего подходит для выполнения requiremnt.

[1-9][0-9]*

Вот пример вывода

String 0 matches regex: false
String 1 matches regex: true
String 2 matches regex: true
String 3 matches regex: true
String 4 matches regex: true
String 5 matches regex: true
String 6 matches regex: true
String 7 matches regex: true
String 8 matches regex: true
String 9 matches regex: true
String 10 matches regex: true
String 11 matches regex: true
String 12 matches regex: true
String 13 matches regex: true
String 14 matches regex: true
String 15 matches regex: true
String 16 matches regex: true
String 999 matches regex: true
String 2654 matches regex: true
String 25633 matches regex: true
String 254444 matches regex: true
String 0.1 matches regex: false
String 0.2 matches regex: false
String 0.3 matches regex: false
String -1 matches regex: false
String -2 matches regex: false
String -5 matches regex: false
String -6 matches regex: false
String -6.8 matches regex: false
String -9 matches regex: false
String -54 matches regex: false
String -29 matches regex: false
String 1000 matches regex: true
String 100000 matches regex: true

Ответ 5

^\d*[1-9]\d*$

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

Позволяет

1

01

10

11 и т.д.

не разрешать

0

00

000 и т.д.

Ответ 6

Получается следующее:

^[1-9]|[0-9]{2,}$
Кто-то бьет его?:)

Ответ 7

Возможно, вы захотите этого (отредактируйте: разрешите номер формы 0123):

^\\+?[1-9]$|^\\+?\d+$

однако, если бы это был я, я бы вместо этого сделал

int x = Integer.parseInt(s)
if (x > 0) {...}

Ответ 8

Просто для удовольствия, другая альтернатива, использующая lookaheads:

^(?=\d*[1-9])\d+$

Как много цифр, как вы хотите, но по крайней мере один должен быть [1-9].

Ответ 9

Этот RegEx соответствует любому положительному целому числу из 0:

(?<!-)(?<!\d)[1-9][0-9]*

Он работает с двумя отрицательными взглядами, которые ищут минус перед числом, которое указывает, что это отрицательное число. Это также работает для любого отрицательного числа, большего чем -9 (например, -22).

Ответ 10

Мой шаблон сложен, но он охватывает ровно "любое положительное целое число, исключая 0" (1 - 2147483647, не длинное). Это для десятичных чисел и не допускает начальных нулей.

^((1?[1-9][0-9]{0,8})|20[0-9]{8}|(21[0-3][0-9]{7})|(214[0-6][0-9]{6})
|(2147[0-3][0-9]{5})|(21474[0-7][0-9]{4})|(214748[0-2][0-9]{3})
|(2147483[0-5][0-9]{2})|(21474836[0-3][0-9])|(214748364[0-7]))$

Ответ 11

Любое положительное целое число, кроме 0: ^\+?[1-9]\d*$
Любое положительное целое число, включая 0: ^(0|\+?[1-9]\d*)$

Ответ 12

^ [1-9] * $- самый простой, о котором я могу думать

Ответ 13

Это должно допускать только десятичные знаки > 0

^([0-9]\.\d+)|([1-9]\d*\.?\d*)$