繁体   English   中英

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

[英]RegEx for matching a single-line standard USPS address

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

此RegEx可以帮助您将地址分为几类,您可以在其中简单地提取列出的变量:

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

正则表达式

如果愿意,您可以处理此RegEx并创建其他边界。 它当前有五个组() ,其中组$2$5是您的目标变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM