Как бы вы очистили номер улицы от почтового адреса с помощью Java? - PullRequest
1 голос
/ 03 сентября 2010

Чтобы обеспечить конфиденциальность данных, я должен опубликовать список адресов после удаления номеров улиц.

Так, например:

1600 Amphitheatre Parkway, Mountain View, CA

необходимо опубликовать как

Amphitheatre Parkway, Mountain View, CA

Какой лучший способ сделать это на Java? Требуется ли регулярное выражение?

Ответы [ 4 ]

3 голосов
/ 03 сентября 2010

РЕДАКТИРОВАТЬ: Как насчет ...

addressString.replace("^\\s*[0-9]+\\s+","");

или JavaScript ...

addressString.replace(/^\s*[0-9]+\s+/,'');

Мое первоначальное предложение было (JavaScript) ...

addressString.replace(/^\s*[0-9]+\s*(?=.*$)/,'');
3 голосов
/ 03 сентября 2010

Это технически сложная проблема для решения. Но я не думаю, что это имеет значение.

Вы говорите, что хотите убрать номер улицы с адреса, чтобы обеспечить конфиденциальность данных. Как в мире вы думаете, что обеспечивает конфиденциальность? Я имею в виду, что это может дать немного уединения тем, кто живет на улице с несколькими тысячами домов, но на средней улице это сужает до нескольких сотен человек; на небольшой улице, возможно, есть несколько вариантов, а на некоторых сельских дорогах он может точно сказать, какому дому соответствует адрес.

Это не санация.

Тогда проблема значительно усложняется, если вы связываете любые другие данные с этим адресом.

1 голос
/ 03 сентября 2010

Одной из возможностей является использование системы CASS, которая обычно анализирует адрес и возвращает в XML.Затем вы можете легко получить название улицы, города и штата, игнорируя номер улицы.

0 голосов
/ 11 февраля 2012

Natchy, я работаю в компании по проверке адресов под названием SmartyStreets : и анализ адресов улиц является нашей областью компетенции.Я подкреплю сказанное pkananen и Mark тем, что это далеко за пределами возможностей регулярных выражений и, в любом случае, если не учитывать конфиденциальность данных, ваш нынешний подход менее эффективен, чем другие.

USPS разрешает определенных поставщикованализаторов адресов для использования своих официальных данных и выдачи сертифицированных результатов, в частности, «CASS-Certified».Обычно CASS ассоциируется с рассылками, но хорошо вписывается в сферу того, что вам нужно сделать.Существуют API (для элементов точки входа) и пакетные службы (например, загрузка списка), которые будут проверять и компонент адрес.

Когда адрес разбит на компоненты, этоочень легко использовать только те части, которые вам действительно нужны.Вы также убедитесь, что адрес существует, является полным, точным и послужит вашим целям.

Например, на странице API LiveAddress (которую вы можете использовать в качестве трамплина дляваше собственное исследование), вы можете увидеть, как это работает, и из документов вы можете выбрать, какие части адресов вы хотите отобразить или сохранить.(Забавно! Наш примерный адрес по умолчанию на этой странице - , также адрес Google в Маунтин-Вью, Калифорния.)

Если у вас возникнут дополнительные вопросы о разборе адресов, я буду радлично вам помочь.

...