3

我正在寻找一种正则表达式模式来查找德国地址。
问题是格式有点奇怪,并且经常更改,示例:

Falcken Str. 45 F
Heinrich-Heine-Straße 62A, Berlin-Kreuzberg
Lindenstrasse 113; Kreuzberg; 10969 Berlin
Erkstrasse 7; Neuköln; 12043 Berlin
Werbellin Strasse 69; Neuköln; 12053 Berlin
Anschrift; Rudolfstrasse 8-10; Friedrichshain; 10245 Berlin
Maybachufer 3, Neukölln, 12047, Berlin, Germany (?)
Skalitzer Strasse 31-32; Kreuzberg; 10999 Berlin
Mühlen Strasse 17; Friedrichshain; 10243 Berlin
Am Flutgraben 1; Treptow; 12435 Berlin; Germany (?)
Rigaer Strasse 89; Friedrichshain; 10247 Berlin
Köpenicker Str. 12, 10997 Berlin-Kreuzberg
Schliemannstraße 27; 10437; Berlin
Michaelkirchstr. 32, 10179 Berlin
Maybachufer 44, Neukölln, 12045, Berlin, Germany
Alexanderstrasse 11; Mitte; 10178 Berlin
Café Dritter Raum - Hertzbergstr. 14 - 12055 Berlin

现在我尝试将它们分成组(至少 [地址] [邮政编码] [柏林])
,但我无法捕捉到所有这些,我能想到的最好的方法是

^([a-zäöüß\s\d.,-]+?)\s*([\d\s]+(?:\s?[-|+/]\s?\d+)?\s*[a-z]?)?;*\s*(\d{5})\s*(.+)?$

(感谢stackoverflow上的另一个问题)。

有任何想法吗?

4

1 回答 1

3

不规则的数据会导致不一致的结果。此外,正则表达式并不是每个水晶酒瓶的正确选择。

实际的角度来看,我只是解析标准化地址(无论这对德国地址意味着什么),然后将剩余部分转储到另一个文件以进行手动地址更正。如果您的大多数地址格式不正确,那么您可能需要访问某种地址更正数据库——通常是商业的,并且通常可以从所涉及的邮政服务处获得。

于 2012-06-07T21:21:03.567 回答