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

我正在学习如何从数据字符串中提取数据以定义为变量并根据需要使用。我每次解析的数据源都是标准电子邮件,每次的地址标点和格式都完全相同。唯一的区别是,有时邮政编码可能是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天时间尝试并查找可以尝试的东西,但我无法完全满足我的确切需求。


繁华开满天机
浏览 155回答 1
1回答

饮歌长啸

此RegEx可以帮助您将地址分为几类,您可以在其中简单地提取列出的变量:([0-9]+)\s([A-Za-z0-9\-\s]+)\,\s([A-Za-z\s]+)\,\s([A-Z]{2})\s([0-9\-]{5,10})如果愿意,您可以处理此RegEx并创建其他边界。它当前有五个组(),其中$2to$5是您的目标变量。
打开App,查看更多内容
随时随地看视频慕课网APP