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

时间:2015-10-07 23:18:25

标签: 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 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")

2 个答案:

答案 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"。