データのプライバシーを確保するために、番地を削除した後に住所のリストを公開する必要があります。
したがって、たとえば:
1600 Amphitheatre Parkway, Mountain View, CA
として公開する必要があります
Amphitheatre Parkway, Mountain View, CA
Javaでこれを行うための最良の方法は何ですか?これには正規表現が必要ですか?
データのプライバシーを確保するために、番地を削除した後に住所のリストを公開する必要があります。
したがって、たとえば:
1600 Amphitheatre Parkway, Mountain View, CA
として公開する必要があります
Amphitheatre Parkway, Mountain View, CA
Javaでこれを行うための最良の方法は何ですか?これには正規表現が必要ですか?
編集:どうですか...
addressString.replace("^\\s*[0-9]+\\s+","");
またはJavaScript...
addressString.replace(/^\s*[0-9]+\s+/,'');
私の最初の提案は(JavaScript)でした...
addressString.replace(/^\s*[0-9]+\s*(?=.*$)/,'');
これは技術的に解決が難しい問題です。しかし、私はそれが重要だとは思いません。
データのプライバシーを確保するために、住所から番地を削除したいとします。それがプライバシーをどのように保証すると思いますか?つまり、数千戸の家がある通りに住んでいる人には少しプライバシーが与えられるかもしれませんが、中程度の道では数百人に絞り込まれます。小さな通りでは、おそらくいくつかの選択肢があり、いくつかの田舎道では、住所がどの家に対応しているかを正確に教えてくれるかもしれません。
これは消毒ではありません。
他のデータをそのアドレスに関連付けると、問題はさらに複雑になります。
1つの可能性は、通常アドレスを解析してXMLで返すCASSシステムを使用することです。そうすれば、通りの番号を無視して、通りの名前、都市、州を簡単に取得できます。
Natchy、私はSmartyStreetsという住所検証会社で働いています。住所の解析は私たちの専門分野です。pkananenとMarkが言ったことを強調します。これは正規表現の機能をはるかに超えており、とにかくデータのプライバシーは別として、現在のアプローチは他のアプローチよりも効果的ではありません。
USPSは、住所パーサーの特定のベンダーが公式データを使用し、認定された結果、具体的には「CASS認定」を返すことを許可しています。通常、CASSは郵送に関連付けられていますが、実行する必要のある領域にまで拡張されます。アドレスを検証してコンポーネント化するAPI(エントリポイント用)とバッチサービス(リストのアップロードなど)があります。
アドレスをコンポーネントに分割すると、実際に必要な部分だけを使用するのは非常に簡単です。また、アドレスが存在し、完全で、正確であり、目的に役立つことを確認します。
たとえば、LiveAddressのAPIページ(独自の調査の出発点として使用できます)では、それがどのように機能するかを確認でき、ドキュメントから、アドレスのどの部分を選択するかを選択できます。表示または保存します。(面白いことに、そのページのデフォルトのサンプルアドレスは、カリフォルニア州マウンテンビューにあるGoogleのアドレスでもあります。)
住所の解析についてさらに質問がある場合は、個人的にサポートさせていただきます。