确定输入是否与指定的格式匹配

时间:2016-02-20 10:54:14

标签: python input format

Python 3中是否有一个选项来确定输入是否与指定的格式匹配?例如:格式为d-dddd-dddd-dd代表数字(0-9):

>>> ('9-9715-0210-0')
True
>>> ('997-150-210-0')
False

2 个答案:

答案 0 :(得分:2)

使用正则表达式可以这样工作:

import re

regex = r'\d-\d{4}-\d{4}-\d'

preg = re.compile(regex)

s1 = '9-9715-0210-0'
s2 = '997-150-210-0'

m1 = preg.match(s1)
m2 = preg.match(s2)

if m1:
    print('String s1 is valid')
else:
    print('String s1 is invalid')

if m2:
    print('String s2 is valid')
else:
    print('String s2 is invalid')   

您可以在ideone.com处尝试代码。

您在问题下面的评论中建议的正则表达式只是我的长版本。所以这也应该有效。

答案 1 :(得分:0)

试试这个:

string = "9-9715-0210-0"
split = string.split("-")
if len(split[0]) == 1 and len(split[1]) == 4 and len(split[2]) == 4 and len(split[3]) == 1:
    print(True)
else:
    print(False)

您还可以将字符串更改为input,以便您可以输入输入或从此代码创建函数并多次运行。