PHP代码在线运行
<?php
date_default_timezone_set('Asia/Shanghai');
$str = '内蒙古自治区锡林郭勒盟西乌珠穆沁旗详细地址详细地址xxx';
function addressSplit($address)
{
preg_match('/(.*?(省|自治区))/', $address, $matches);
if (count($matches) > 1) {
$province = $matches[count($matches) - 2];
$address = str_replace($province, '', $address);
}
preg_match('/(.*?(市|自治州|州|地区|区划|县|盟))/', $address, $matches);
if (count($matches) > 1) {
$city = $matches[count($matches) - 2];
$address = str_replace($city, '', $address);
}
preg_match('/(.*?(市|区|县|旗|镇|乡|街道))/', $address, $matches);
if (count($matches) > 1) {
$area = $matches[count($matches) - 2];
$address = str_replace($area, '', $address);
}
$data = [
'province' => isset($province) ? $province : '',
'city' => isset($city) ? $city : '',
'area' => isset($area) ? $area : '',
'address' => isset($address) ? $address : '',
];
if ($city == '北京市' || $city == '天津市' || $city == '重庆市' || $city == '上海市') {
$data['province'] = $city;
}
return $data;
}
$s = addressSplit($str);
print_r($s);