Php 将完整的美国街道地址解析为地址、城市、州、邮政编码
我的地址每次都采用这种格式: 地址,城市,州邮编 示例:加利福尼亚州Testville 555路试驾98773 我想将地址解析为单独的变量,用于:Php 将完整的美国街道地址解析为地址、城市、州、邮政编码,php,regex,preg-match,Php,Regex,Preg Match,我的地址每次都采用这种格式: 地址,城市,州邮编 示例:加利福尼亚州Testville 555路试驾98773 我想将地址解析为单独的变量,用于: 地址 城市 陈述 拉链 我尝试了一些preg_match示例,但它们不遵循我使用的相同模式。我要找的是regex还是preg_match?请帮忙 你可以想出这样的办法: (?P<address>[^,]+),\h+ (?P<city>[^,]+),\h+ (?P<state>\w+)\s+ (?P<zip
- 地址
- 城市
- 陈述
- 拉链
我尝试了一些preg_match示例,但它们不遵循我使用的相同模式。我要找的是regex还是preg_match?请帮忙 你可以想出这样的办法:
(?P<address>[^,]+),\h+
(?P<city>[^,]+),\h+
(?P<state>\w+)\s+
(?P<zip>\w+)
请参阅。但是,如果逗号不总是在那里,这可能会变得非常混乱(请提供更多的输入字符串)。您可以想出如下方法:
(?P<address>[^,]+),\h+
(?P<city>[^,]+),\h+
(?P<state>\w+)\s+
(?P<zip>\w+)
请参阅。但是,如果逗号不总是在那里,这可能会变得非常混乱(请提供更多的输入字符串)。如果您是绝对肯定的,则地址的格式将始终与您的示例一样,使用这些逗号,您有两个简单的选项 选项1:正则表达式 现在您有了自己的地址变量 工作示例: 选项2:爆炸
您还可以使用
explode()
将地址拆分为若干部分:
list($street, $city, $statezip) = explode(", ", $address);
list($state, $zip) = explode(" ", $statezip);
工作示例:如果您是绝对肯定的,则地址的格式将始终与您的示例相同,使用这些逗号,您有两个简单的选项 选项1:正则表达式 现在您有了自己的地址变量 工作示例: 选项2:爆炸
您还可以使用
explode()
将地址拆分为若干部分:
list($street, $city, $statezip) = explode(", ", $address);
list($state, $zip) = explode(" ", $statezip);
工作示例:您还可以使用
explode()
:
$full_address='555加州Testville路试98773';
$address=explode(“,”,$full_address)[0];
$city=explode(“,”,$full_address)[1];
$state=explode(“”,trim(explode(‘,’,$full_address)[2])[0];
$zip=explode(“”,trim(explode(‘,’,$full_address)[2])[1];
回显$address.“
”;
echo$city.“
”;
回显$state。“
”;
echo$zip;
您也可以使用explode()
:
$full_address='555加州Testville路试98773';
$address=explode(“,”,$full_address)[0];
$city=explode(“,”,$full_address)[1];
$state=explode(“”,trim(explode(‘,’,$full_address)[2])[0];
$zip=explode(“”,trim(explode(‘,’,$full_address)[2])[1];
回显$address.“
”;
echo$city.“
”;
回显$state。“
”;
echo$zip;
我在这里看到的模式是文本,文本,文本文本
。可以使用(.*)、(.*)、(.*)(.*)(.*)
捕获。可以在不同的变量中捕获四个组。我在这里看到的模式是text,text,text-text
。可以使用(.*)、(.*)、(.*)(.*)(.*)
捕获。四个组可以在不同的变量中捕获。这不适用于以下地址“5957 HWY 45,8英里,AL 36613”。任何建议,代码对其他地址都适用,但2句城市导致未定义的偏移错误。这不适用于以下地址“5957 HWY 45,8英里,AL 36613”任何建议,该代码在其他代码上运行良好,但2语句会导致未定义的偏移量错误
$full_address = '555 Test Drive, Testville, CA 98773';
$address = explode(',', $full_address)[0];
$city = explode(',', $full_address)[1];
$state = explode(' ', trim(explode(',', $full_address)[2]))[0];
$zip = explode(' ', trim(explode(',', $full_address)[2]))[1];
echo $address.'<br>';
echo $city.'<br>';
echo $state.'<br>';
echo $zip;