¿Cuál es la expresión regular de “Cualquier número entero positivo, excluyendo 0”

¿Cómo puede ^\d+$ mejorarse para no permitir 0 ?

EDITAR (Hazlo más concreto):

Ejemplos para permitir:
1
30
111
Ejemplos para rechazar:
0
00
-22

No importa si los números positivos con un cero inicial están permitidos o no (p. Ej. 022 ).

Esto es para la implementación Java JDK Regex.

Prueba esto:

 ^[1-9]\d*$ 

… y algo de relleno para exceder el límite de respuesta de 30 caracteres SO :-).

Lamento llegar tarde pero el OP quiere permitir 076 pero probablemente NO quiere permitir 0000000000 .

Entonces, en este caso, queremos una cadena de uno o más dígitos que contengan al menos un valor distinto de cero . Es decir

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

Puede intentar una aserción negativa de búsqueda anticipada:

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

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

esto puede incluir todos los valores positivos, incluso si está rellenado por Zero en el frente

Permite

1

01

10

11 etc.

No permitir

0

00

000 etc.

Tengo este:

 ^[1-9]|[0-9]{2,}$ 

Alguien lo supera? 🙂

Es posible que desee esto (editar: permitir el número del formulario 0123 ):

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

Sin embargo, si fuera yo, lo haría

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

Prueba este, este funciona mejor para satisfacer el requerimiento.

 [1-9][0-9]* 

Aquí está la salida de muestra

 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 

Solo por diversión, otra alternativa usando lookaheads:

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

Todos los dígitos que desee, pero al menos uno debe ser [1-9] .

^ [1-9] * $ es lo más simple que puedo pensar

Esto solo debería permitir decimales> 0

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