RegEx для сопоставления однострочного стандартного адреса USPS - PullRequest
1 голос
/ 20 апреля 2019

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

123 Riverview Pkwy, Orlando, FL 55556
123 Riverview Pkwy, Orlando, FL 55556-1234

Я смог извлечь город следующим образом:

preg_match('/, (.*?)\,/', $xaemailpaste, $insuredcity1);
$insuredcity = $insuredcity1[1];

И это вернется"Орландо" отлично, но я не могу получить адрес, штат или почтовый индекс.Может кто-нибудь помочь мне с регулярным выражением назначить переменные для каждого компонента?

$streetaddress = 123 Riverview Pkwy 
$city = Orlando
$state = FL
$zip = 55556

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

1 Ответ

2 голосов
/ 20 апреля 2019

Этот RegEx может помочь вам разделить ваши адреса на группы, где вы можете просто извлечь перечисленные переменные:

([0-9]+)\s([A-Za-z0-9\-\s]+)\,\s([A-Za-z\s]+)\,\s([A-Z]{2})\s([0-9\-]{5,10})

RegEx

Вы можете работать с этим RegEx и создавать дополнительные границы, если хотите.В настоящее время он имеет пять групп (), где группы $2 до $5 являются целевыми переменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...