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 に答える