如何为无效的用户输入循环正则表达式re.match?

时间:2015-11-09 21:29:42

标签: python regex loops input

如果用户输入的内容无效,我该如何重复?#34;请提供一些信息:"直到他们提供有效的输入而不是在最后退出?

input_str = raw_input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
    print "Error! Only letters a-z allowed!"
    sys.exit()

2 个答案:

答案 0 :(得分:1)

您可以重新分配input_str

sys.exit()替换为input_str = raw_input("Please provide some info: ")

并将其包装在while循环中

while not re.match("^[a-z]*$", input_str):
    print "Error! Only letters a-z allowed!"
    input_str = raw_input("Please provide some info: ")

或者如果您希望保持相同的设置,则可以暂时使用True。

while True:
    input_str = raw_input("Please provide some info: ")
    if not re.match("^[a-z]*$", input_str):
        print "Error! Only letters a-z allowed!"
    else:
        break

答案 1 :(得分:0)

尝试这样的事情:

input_str = raw_input("Please provide some info: ")
while not re.match("^[a-z]*$", input_str):
    print "Error! Only letters a-z allowed!"
    input_str = raw_input("Please provide some info: ")