在Python中,有没有一种方法可以验证特定格式的用户输入?

2024-05-11 18:44:23 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,我要求用户输入一个办公室代码位置,该位置需要采用以下格式:X X-XXX(其中X是字母)

我如何才能确保他们的输入遵循格式,如果它不要求他们再次输入办公室代码?

谢谢!


Tags: 代码用户格式字母xxx办公室
2条回答

在您的情况下,可以使用regular expression

import re
while True:
   inp = input() # raw_input in Python 2.x
   if re.match(r'[a-zA-Z0-9]{2}-[a-zA-Z0-9]{3}$', inp):
       return inp
   print('Invalid office code, please enter again:')

注意,在许多其他情况下,您可以尝试将输入转换为内部表示。例如,当输入为数字时,代码应如下所示:

def readNumber():
    while True:
        try:
          return int(input()) # raw_input in Python 2.x
        except ValueError:
          pass

使用regular expressions是实现这一点的标准(和语言不可知的)方法:

import re

re.match('^[0-9]{2}-[0-9]{3}$', some_text)

上面的示例返回True(实际上是一个“truthy”返回值,但您可以假设它是True),如果文本包含2位数字、一个连字符和3个其他数字。下面是上面的正则表达式,它被分解成几个部分:

^     # marks the start of the string
[0-9] # any character between 0 and 9, basically one of 0123456789
{2}   # two times
-     # a hyphen
[0-9] # another character between 0 and 9
{3}   # three times
$     # end of string

我建议您阅读更多关于正则表达式(或者re,或者regex,或者regexp,不管您如何命名)的内容,它们对于程序员来说是某种瑞士军刀。

相关问题 更多 >