我正在寻找一种正则表达式模式来查找德语地址。
问题在于格式采样有些奇怪,并且经常更改:
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的另一个问题)。
有任何想法吗?
最佳答案
不规则的数据会导致结果不一致。此外,正则表达式并不是每个水晶every水器的正确选择。
从实际的角度来看,我只是解析标准地址(对于德国地址而言,这意味着什么),并将剩余的数据转储到另一个文件中,以进行手动地址更正。如果您的大多数地址格式不正确,那么您可能需要访问某种类型的地址校正数据库-通常是商业数据库,通常可以从所涉及的邮政服务获得。
关于regex - 正则表达式为德国地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10939618/