从String中查找Zip编号

时间:2013-08-29 06:26:40

标签: python regex

我有一个像

这样的字符串
x = '''
Anrede:*



Herr
*Name:*

Tobias
*Firma:*

*Strasse/Nr:*

feringerweg
*PLZ/Ort:*

72531
*Mail:*
tovoe@gmeex.de [1]





'''

因为有一个拉链编号 PLZ / Ort:,这是拉链编号,我想从整个字符串中找到拉链编号,所以可能的方法是使用正则表达式,但不要知道正则表达式,

3 个答案:

答案 0 :(得分:1)

假设您的示例中的输入是包含多个字符串的文件,您可以尝试这样的事情:

import re

for line in open(filename, 'r'):
    matchPattern = "^(\d{5})$"
    match = re.match(matchPattern, line, flags=0)
    print match.group(0) #the whole match

如果这只是一个长字符串,您可以使用相同的匹配模式但不使用^(行开头)和$(行结束)指示符 - > (\d{5})

答案 1 :(得分:1)

我假设Postleitzahl总是遵循两行看起来像*PLZ/Ort:*和。{ 
,这是它上面唯一的文字。如果是这种情况,那么你可以使用类似的东西:

import re
m = re.search('^\*PLZ/Ort:\*\n
\n(\d{5})', x, re.M)
if m:
    print m.group(1)

答案 2 :(得分:0)

你可以试试这个正则表达式:

(?<=PLZ\/Ort)[\s\S]+?([a-zA-Z0-9\- ]{3,9})

它也支持Alpha数字邮政编码。您可以在here上看到邮政编码的长度/格式。