对于学校项目,我需要编写一个验证荷兰邮政编码的Python脚本,并使用正则表达式来完成。
我想出了下面的剧本,我的两个正则表达式都不起作用,我现在已经坚持了一段时间并且不知道我在做什么错。
以下是剧本:
check1=0
check2=0
check3=0
invoer = input ("Fill in a postal code")
if re.match("^[0-9]{0,4}", invoer):
check1 = 1
#Below if statement doesn't work (Should checks that the last 2 charcters are capitals)
if re.match("[A-Z]{2}$", invoer):
check2 = 1
print ("check 2 works")
#Below if statement doesn't work (Should checks for existence of a space on position 5.)
if re.match("\\s{5}", invoer):
check3 = 1
print ("check 3 works")
if re.match("^[A-Z0-9]{0,6}", invoer):
check3 = 1
print ("ding1")
if check1 == 1 and check2 == 1 and check3 == 1:
print ("Postcode is valide")
答案 0 :(得分:3)
re.match()
从字符串的开头查找匹配项:
如果字符串开头的零个或多个字符与。匹配 正则表达式模式,返回相应的MatchObject 实例。如果字符串与模式不匹配,则返回None;注意 这与零长度匹配不同。
您需要使用re.search()
代替:
if re.search("[A-Z]{2}$", invoer):
# ...
答案 1 :(得分:0)
" \ S {5}"匹配5个空格。你想匹配4个字符然后一个空格吗?我也使用" raw"字符串,以便我不必逃脱。那是r"。{4} \ s"。