正在从字符串中查找邮政编码



我有一个类似的字符串

x = '''
Anrede:*



Herr
*Name:*

Tobias
*Firma:*
*Strasse/Nr:*

feringerweg
*PLZ/Ort:*

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



'''

因为有一个zip编号PLZ/Ort:,这是zip编号,我想从整个字符串中找到zip编号,所以可能的方法是使用regex,但不知道regex,

假设您的示例中的输入是包含多个字符串的文件,您可以尝试以下操作:

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})

我假设Postleitzahl总是遵循两行,看起来像*PLZ/Ort:*
,并且它是其行中唯一的文本。如果是这样的话,那么你可以使用这样的东西:

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

您可以尝试以下regex:

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

它还将支持字母数字邮政编码。您可以从这里查看邮政编码的长度/格式。

最新更新