RegEx用于匹配单行标准USPS地址

时间:2019-04-20 02:21:06

标签: php html regex

我正在学习如何从数据字符串中提取数据以定义为变量并根据需要使用。我每次解析的数据源都是标准电子邮件,每次的地址标点和格式都完全相同。唯一的区别是,有时邮政编码可能是9位代码。

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

我能够像这样提取城市:

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

这将完美返回“ Orlando”,但我无法获得地址,州或邮编。有人可以帮我用正则表达式为每个组件分配变量吗?

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

我在regex上取得了一些成功,我很高兴能学到更多,但是我花了2天的时间尝试一些东西并查找可以尝试的东西,但我不能完全满足我的确切需求。

1 个答案:

答案 0 :(得分:2)

This 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是您的目标变量。