Честно говоря, вы ставите перед собой довольно сизифов вызов, и я не уверен, стоит ли это того. Если ваши данные не поступают из известного источника в очень хорошо указанном формате, вы получите данные, которые совершенно бесполезны. Если вы имеете дело со свободным текстом, люди облажают свои адреса так, как вы не поверите.
Вы действительно хотите попробовать (самостоятельно) проанализировать каждую возможную комбинацию Richmond, Victoria, 3121
и Richmond 3121 VIC
и Richmond VIC, 3121
и т. Д.? И это только гранулярность пригорода!
Адреса еще хуже. Конечно, большинство людей поставили бы 7/21 Smith St
за единицу или 29-33 Jones St
за местоположение, охватывающее несколько улиц, но люди не согласны. Является ли 1-5 Brown St
единица 1 под номером 5 или локация от 1 до 5 на этой улице? Является ли 7A
отдельным подразделенным адресом улицы или Единицей A в # 7?
Сопоставление адресов не простая проблема, и если ваш набор данных представляет собой свободный текст, введенный конечным пользователем, я бы не стал беспокоиться, если у вас нет тривиального объема данных или вас не волнует Точность (или, наоборот, много времени для ручной очистки). Если нет, передайте это программному обеспечению, которое сделает эту работу за вас.
В австралийской почте есть нечто, называемое Файл почтовых адресов (PAF) , в котором содержится каждое действительное место доставки в Австралии. Существует ряд программных библиотек, которые выполнят для вас синтаксический анализ + сопоставление и либо дадут вам окончательный ответ (включая все отдельные компоненты адреса, как вам нужно), либо предоставят список возможных совпадений на ваш выбор. если адрес не существует или неоднозначен. Один известный мне пример - QAS Batch (никак не связан с ними, в прошлом оценивал их программное обеспечение, но в итоге его не использовал), но это только один пример; есть список других доступных через веб-сайт PAF.
Нельзя рекомендовать достаточно сильно, чтобы вы не тратили на это свое время, если только это не тривиальный масштаб.
Если это так, эй, да, регулярное выражение.