python正则表达式,检查变量的最后两个字符

python正则表达式,检查变量的最后两个字符,python,regex,Python,Regex,对于一个学校项目,我需要编写一个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

对于一个学校项目,我需要编写一个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")
从字符串开头查找匹配项:

如果字符串开头的零个或多个字符与 正则表达式模式,返回相应的MatchObject 例如。如果字符串与模式不匹配,则返回None;笔记 这与零长度匹配不同

您需要改为使用:


“\s{5}”匹配5个空格。要匹配4个字符,然后匹配一个空格,对吗?我还使用了“原始”字符串,这样我就不必逃出。这就是r“{4}\s”

谢谢,这解决了我一半的问题,现在我只需要弄清楚如何检查位置5上的字符是否是空格。@gijs007像
invore[4]==“”
这样简单的东西怎么样?我们可能会讨论用一个regexp替换所有检查,但这可能超出了本文的范围。谢谢
if re.search("[A-Z]{2}$", invoer):
    # ...