Regex для слов в уличных адресах - PullRequest
0 голосов
/ 25 июня 2018

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

Я успешно использую группы для возврата номера улицы и названия улицы из следующего

1 Main Street, Sydney NSW 2000
1A Main Street, Sydney NSW 2000
1/20 Main Street, Sydney NSW 2000
1/20A Main Street, Sydney NSW 2000
U1/20A Main Street, Sydney NSW 2000

Мое (PHP) выражение - ~([\w\d\-\/\.\&]*)\s*([\w\d '\-\.\ ()]+)~

Но у меня возникли проблемы с адаптацией этого для работы с:

Unit 1/20 Main Street, Sydney NSW 2000

Мои группы дают мне 'Unit' и '1'

Скрипка здесь: https://regex101.com/r/aLRNgp/1

1 Ответ

0 голосов
/ 25 июня 2018

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

^((?:Unit )?[\w\-\/\.\&]*)\s*([\w '\-\.\ ()]+)

Демо

...