Natchy, я работаю в компании по проверке адресов под названием SmartyStreets : и анализ адресов улиц является нашей областью компетенции.Я подкреплю сказанное pkananen и Mark тем, что это далеко за пределами возможностей регулярных выражений и, в любом случае, если не учитывать конфиденциальность данных, ваш нынешний подход менее эффективен, чем другие.
USPS разрешает определенных поставщикованализаторов адресов для использования своих официальных данных и выдачи сертифицированных результатов, в частности, «CASS-Certified».Обычно CASS ассоциируется с рассылками, но хорошо вписывается в сферу того, что вам нужно сделать.Существуют API (для элементов точки входа) и пакетные службы (например, загрузка списка), которые будут проверять и компонент адрес.
Когда адрес разбит на компоненты, этоочень легко использовать только те части, которые вам действительно нужны.Вы также убедитесь, что адрес существует, является полным, точным и послужит вашим целям.
Например, на странице API LiveAddress (которую вы можете использовать в качестве трамплина дляваше собственное исследование), вы можете увидеть, как это работает, и из документов вы можете выбрать, какие части адресов вы хотите отобразить или сохранить.(Забавно! Наш примерный адрес по умолчанию на этой странице - , также адрес Google в Маунтин-Вью, Калифорния.)
Если у вас возникнут дополнительные вопросы о разборе адресов, я буду радлично вам помочь.