PHP简单实现正则匹配省市区的方法


Posted in PHP onApril 13, 2018

本文实例讲述了PHP简单实现正则匹配省市区的方法。分享给大家供大家参考,具体如下:

省市区正则匹配

preg_match('/(.*?(省|自治区|北京市|天津市))+(.*?(市|自治州|地区|区划|县))+(.*?(区|县|镇|乡|街道))/', $address, $matches);

获得省市区数组

$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);
}
return [
  'province' => isset($province) ? $province : '',
  'city' => isset($city) ? $city : '',
  'area' => isset($area) ? $area : '',
];

感觉应该还有更好的方法,欢迎评论留言

PHP 相关文章推荐
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP简单实现上一页下一页功能示例
Sep 14 PHP
PHP实现基于状态的责任链审批模式详解
May 31 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 #PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 #PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 #PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 #PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 #PHP
PHP实现的简单组词算法示例
Apr 10 #PHP
PHP实现的大文件切割与合并功能示例
Apr 10 #PHP
You might like
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Django中间件工作流程及写法实例代码
2018/02/06 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
工作中个人的自我评价
2013/12/31 职场文书
承诺书格式范文
2014/06/03 职场文书
小学班级特色活动方案
2014/08/31 职场文书
个人年终总结开头
2015/03/06 职场文书
学生会任命书范本
2015/09/21 职场文书
简短清晨问候语
2015/11/10 职场文书
团队拓展训练心得体会
2016/01/12 职场文书