我想制作能够识别瑞士官方邮政地址的正则表达式。它们看起来像这样:
Mr
Hans Schweizer
Gerechtigkeitsgasse 10
3011 Berne
Ms
Susi Frei
c/o Hans Schweizer
Gerechtigkeitsgasse 10
3011 Berne
Mr
Erich Müller
Bahnhofstrasse 4/8
8001 Zurich
从文本中可以看出:
'You should send a letter to:
Mr
Hans Schweizer
Gerechtigkeitsgasse 10
3011 Berne
and tell him all about your last summer...'
正则表达式应该只提取有关地址的信息
我看了这篇文章: FInd a US street address in text (preferably using Python regex)
并试图模仿它,但我失败了,我无法让它工作
地址应包括:
gender (Herr|Frau|Mrs|Mr|Ms)
name: two or 3 string titled words
street: (strasse|gasse|weg|platz|promenade)
code: int numbers
city: (Zurich|Zürich|Basel|Geneva|Lausanne|Bern|Winterthur|Lucerne|St. Gallen|St.Gallen)
因此,瑞士95%的街道都有后缀“strasse”或“gasse”等,我只寻找一些城市(但稍后我可能会添加更多)
我的问题是,我不知道如何将所有这些放在一个正则表达式中
你能告诉我如何制作能够识别瑞士地址的正则表达式吗
比如:
(Herr|Frau|Mrs|Mr|Ms)\n([a-zA-Zü]+ ){1,2}[a-zA-Zü]+\n[a-zA-Zü]+(strasse|gasse|weg|platz|promenade) ([0-9]{1,4}|[0-9]{1,4}/[0-9]{1,4})\n[0-9]{1,4} (Zurich|Zürich|Basel|Geneva|Lausanne|Bern|Winterthur|Lucerne|St. Gallen|St.Gallen)
如果你想了解更多信息,请尽管问。也许有什么不对劲 不要忘记我在哪里使用
[a-zA-Z]+
添加所有重音字符等以下是有关如何检查的示例代码:
具有以下输出(测试4、5和6为错误文本):
您的第二个示例不起作用,因为与其他示例相比,还有一条车道,并且您在解释中没有提到它(
c/o Hans Schweizer
)。因此,请随意指出该车道的规则相关问题 更多 >
编程相关推荐