将完整的美国街道地址解析为地址,城市,州,邮编

cpc*_*dev 0 php regex preg-match

我每次都有遵循这种格式的地址:

地址,城市,州邮编

示例:555 Test Drive,Testville,CA 98773

我想将地址解析为单独的变量:

  • 地址
  • 压缩

我尝试了一些preg_match示例,但它们并没有遵循我使用的相同模式.是正在寻找正则表达式还是preg_match?请帮忙!

jsz*_*ody 6

如果你是绝对肯定的,地址将始终像你的例子一样格式化,用这些逗号,你有两个简单的选项.

选项1:正则表达式

preg_match("/(.+), (\w+), (\w+) (\w+)/", $address, $matches);
list($original, $street, $city, $state, $zip) = $matches;
Run Code Online (Sandbox Code Playgroud)

现在您拥有了各自的地址变量.

工作示例:https://3v4l.org/veo0i

选项2:爆炸

您还可以使用explode()将地址拆分为多个部分:

list($street, $city, $statezip) = explode(", ", $address);
list($state, $zip) = explode(" ", $statezip);
Run Code Online (Sandbox Code Playgroud)

工作示例:https://3v4l.org/jrIjB