Regex acepta numérico solamente. El primer personaje no puede ser 0

Tengo un cuadro de texto que creé usando .NET ..

Al usar ese cuadro de texto, el usuario solo puede ingresar números. Pero no empieces con 0. comienza con 1-9. después de la clave de usuario en el 1-9 en el primer carácter, el usuario puede ingresar 0.

Regex reg = null;
reg = new System.Text.RegularExpressions.Regex("^[1-9][0-9]*$")
return reg.IsMatch(str);

Esa es mi expresión regular. Al usar eso no puedo teclear 1-9. pero solo 0 y alfabeto. Pero si uso ^ [1-9] puedo teclear numérico, pero no puedo teclear el 0.

Ya he intentado todas las respuestas que todos ustedes sugieren. Pero todavía no puede trabajar. No es que no haya leído toda tu respuesta.

Aquí está la foto ..

Quiero validar la primera vez, el usuario solo puede ingresar números, pero comenzar con un valor que no sea 0 o alfabeto, sino 1-9. Después del primer carácter, el usuario solo puede ingresar 0-9.

Utilizo Int.TryParse, pero lo uso después de presionar un botón para procesarlo.

reg = new System.Text.RegularExpressions.Regex("^[^0-9]");

Que las expresiones regulares solo aceptan números de 0 a 9.

reg = new System.Text.RegularExpressions.Regex("^[^1-9]");

Que las expresiones regulares solo aceptan números del 1 al 9.

¿Cómo puedo agregar más expresiones a expresiones regulares para el segundo carácter hasta el resto que solo acepte números numéricos 0-9?

Por cierto, no me importan los 0,99 porque aquí, el precio es fijo. No con 0.99 o 0.123.

¿Alguna otra forma de hacerlo? Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta