Мне нужно извлечь 3 вещи из строки, почтового ящика, адреса улицы и всего остального.
Вот как будет выглядеть строка:
DUNHOUR AGENCY IN C PO BOX 48 44 TANNER STREET HADDONFIELD NJ 08033 VERONA NJ 070440324
Мне удалось извлечь адрес PO и улицу, используя следующее регулярное выражение, но я бегал кругами, чтобы получить оставшуюся часть строки.
Вот мое регулярное выражение:
\b(PO BOX \d{2,5}|PO Box \d{2,5}|P.O. BOX \d{2,5}|P O BOX \d{2,5})?\s*(\d+\s[A-z]+\s[A-z]+)\s(\d+\s[A-z]+)?
Как получить все остальное при совпадении последней группы?
Я также должен иметь возможность извлекать остальные данные, если PO отсутствует информация о ящике:
* BENNETTI-HOLMES INSURANCE 43 VOSHELL MILL ROAD DOVER DE 19904
Я должен получить false для PO, получить адрес улицы и все остальное в последнем групповом матче.