Python 3中是否有一个选项来确定输入是否与指定的格式匹配?例如:格式为d-dddd-dddd-d
,d
代表数字(0-9):
>>> ('9-9715-0210-0')
True
>>> ('997-150-210-0')
False
答案 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
,以便您可以输入输入或从此代码创建函数并多次运行。