使用正则表达式验证用户输入是一个整数

Mis*_*nes 2 python regex

我正在尝试验证用户的输入.我只希望用户能够输入正整数或负整数.所有其他输入(即带字母的任何输入)都应该被拒绝

我现在有下面的代码,但是我收到了错误.我假设它与数据类型有关,但我不确定如何解决这个问题.

import re

number =input("Please enter a number: ")
number=int(number)
while not re.match("^[0-9 \-]+$", number):
    print ("Error! Make sure you only use numbers")
    number = input("Please enter a number: ")
print("You picked number "+ number)
Run Code Online (Sandbox Code Playgroud)

jpk*_*tta 6

如果你关心的是输入是一个有效的数字文字,甚至不要打扰正则表达式. int将正确解析字符串或引发异常.

while True:
    s = input("Please enter a number: ")
    try:
        n = int(s)
        break
    except ValueError:
        print("Error! Make sure you only use numbers")
print("You picked number " + n)
Run Code Online (Sandbox Code Playgroud)